2016-03-31 9 views
-5

クラスの下で私のメソッドの私は、多くのキーとその内容の辞書を作成しました。 別の関数でそれを使いたいのですが、あるメソッドで作成された辞書がグローバルで、別の辞書で使用できるかどうかは疑問でした。Python:辞書はメソッドでグローバルに宣言されていますか?

グローバルでない場合は、グローバル化する方法があるかどうかを知りたいと思います。

+1

グローバル変数はほとんど決して答えません。 –

+0

他の機能も同じクラスの一部ですか?物事をグローバルにすることは可能ですが、あなたがしたいことはほとんどありません。 – tzaman

+0

あなたはクラスメンバーの辞書について話していますか?モジュールレベル辞書? – Ben

答えて

1

デフォルトでは、メソッドで宣言されている辞書(または任意の変数)はグローバルではありません。それらはメソッドの範囲内に含まれています。

私はそれを証明するテストスクリプトを書いた。 global_test.py

def test(): 
    myDict = { 
     "key1" : "value1" 
    } 
    print "Inside method " + myDict["key1"] 
test() 
#Try calling dictionary created in test() method: 
print "Outside method" + myDict["key1"] 

スクリプトの実行:> Pythonのglobal_test.py

Inside method value1 
Traceback (most recent call last): 
    File "global_test.py", line 11, in <module> 
     print "Outside method" + myDict["key1"] 
NameError: name 'myDict' is not defined 

他の人が逃れてきたように、グローバル変数は、問題を解決するための正しい方法はほとんどされることはありません。