pythonのソースコードを複数のファイルに分割する?
2023-09-18 02:24:13
質問
私は複数のファイルに分割したいコードを持っています。matlabでは単純に
.m
ファイルを呼び出すことができ、それが特に何かとして定義されていない限り、呼び出されたコードの一部であるかのように実行されます。例(編集済み)。
test.m
(matlab)
function [] = test()
... some code using variables ...
test2
test2.m (matlab)
... some more code using same variables ...
呼び出し
test
は test のコードと test2 のコードを実行します。
pythonで同じような方法はありますか?
... some more code ...
を外部ファイルに入れて、それが呼び出されたファイルにあるかのように単純に読み込まれるような方法はありますか?
どのように解決するのですか?
私はちょうど今pythonのモジュール使用法を研究しており、上のコメントでMarkusが質問していること("変数がモジュールに組み込まれているときにどのようにインポートするか?")に2つの観点から答えようと思いました。
- 変数/関数、および
- クラスのプロパティ/メソッドです。
Markusのために変数の再利用を示すために、メインプログラムf1.pyをどのように書き換えるかです。
import f2
myStorage = f2.useMyVars(0) # initialze class and properties
for i in range(0,10):
print "Hello, "
f2.print_world()
myStorage.setMyVar(i)
f2.inc_gMyVar()
print "Display class property myVar:", myStorage.getMyVar()
print "Display global variable gMyVar:", f2.get_gMyVar()
再利用可能なモジュールf2.pyをどのように書き換えるかを説明します。
# Module: f2.py
# Example 1: functions to store and retrieve global variables
gMyVar = 0
def print_world():
print "World!"
def get_gMyVar():
return gMyVar # no need for global statement
def inc_gMyVar():
global gMyVar
gMyVar += 1
# Example 2: class methods to store and retrieve properties
class useMyVars(object):
def __init__(self, myVar):
self.myVar = myVar
def getMyVar(self):
return self.myVar
def setMyVar(self, myVar):
self.myVar = myVar
def print_helloWorld(self):
print "Hello, World!"
f1.pyを実行すると、次のような出力が得られます。
%run "f1.py"
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Hello,
World!
Display class property myVar: 9
Display global variable gMyVar: 10
マーカスへの指摘は、こうだろう。
- モジュールのコードを複数回再利用するには、モジュールのコードを 関数またはクラスに入れてください。
- モジュールのプロパティとして保存された変数を再利用するには、クラス内でプロパティを初期化します。 クラス内でプロパティを初期化し、quot;getter" と "setter" メソッドを追加して、変数をメインプログラムにコピーする必要がないようにします。 メソッドを追加することで、メイン プログラムに変数をコピーする必要がなくなります。
- モジュールに格納された変数を再利用するために、変数を初期化して getter と setter 関数を使用します。セッター関数は、変数をグローバルとして宣言します。 をグローバル変数として宣言します。
関連
-
[解決済み] Pythonで "with open "を使って複数のファイルを開くにはどうしたらいいですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] Pythonが解釈される場合、.pycファイルとは何ですか?
-
[解決済み] 他のPythonファイルをインポートするには?
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] なぜ[]はlist()よりも速いのですか?
-
[解決済み] 文字列を複数の単語境界のデリミタで単語に分割する
-
[解決済み】Pythonでディレクトリ内の拡張子.txtのファイルをすべて検索する
-
[解決済み] サブフォルダからのインポートモジュール
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例