私は今Pythonでモジュールの使用法を研究しています。Markusが上記のコメントで尋ねる疑問に答えると思いました(「変数がモジュールに埋め込まれているときに変数をインポートする方法は?「)2つの観点から:。ここで
- 変数/関数、および
- クラスプロパティ/メソッド
は、私はマルクスのための変数の再利用性を実証するために、メインプログラム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
私はマルクスにポイントがあることだと思う:
- 回以上のモジュールのコードを再利用するには、モジュールのコードを 関数またはクラスに入れよう
- モジュール内のプロパティとして保存された変数を再利用するには、クラス内の プロパティを初期化し、「getter」メソッドと「setter」メソッドを追加します。メインプログラムに3210変数をコピーする必要はありません。
- モジュールに格納されている変数を再利用するには、変数を初期化して ゲッターとセッター関数を使用します。セッター関数は、 変数をグローバルとして宣言します。
はい、ありますが、別のモジュールでファイルを分割し、必要なものをインポートすることができます。 http://docs.python.org/tutorial/modules.html – Borgleader
お気に入りのPythonチュートリアルを読んで、モジュールについて学んでください。 –