Python スクリプトに複数の変数が作成される関数があり、それらを他の関数で使用したいと考えています。私はこれを使用global
することを考えましたが、そうする方法は間違っていると思いました。
では、関数内で他の関数の変数を作成する最良の方法を誰か教えてもらえますか?
Python スクリプトに複数の変数が作成される関数があり、それらを他の関数で使用したいと考えています。私はこれを使用global
することを考えましたが、そうする方法は間違っていると思いました。
では、関数内で他の関数の変数を作成する最良の方法を誰か教えてもらえますか?
変数をクラスに編成します。1 つの関数でクラスをインスタンス化し、そのインスタンスを必要な場所に渡します。
経験則: ある時点で何かをグローバルにすることが良い解決策のように思える場合は、それを行わないでください。常により良い方法があります。
「名前空間」オブジェクトを作成できます。これは、グローバル名前空間を明確に保つために名前空間として機能するオブジェクトです。
class namespace():
pass
global_data=namespace()
def add_attributes(obj):
obj.foo="bar"
add_attributes(global_data)
print (global_data.foo) #prints "bar"
ただし、これは、globalキーワードを使用するよりもわずかに優れています。ポールが言ったように、あなたは本当にここでクラスを望んでいます。
関数の属性として変数を宣言します。
def f1():
f1.a=100
f2.b=200
def f2():
print(f1.a,f2.b)
f1()
f2()
出力:
100 200
これは、クラスを実装するのに適した場所かもしれません。これには多くの利点があります。 チュートリアルのクラスを参照してください。