2013-03-24 24 views
6

いくつかの関数でいくつかのグローバル変数を宣言し、それらの関数を含むファイルを別の関数にインポートしようとしています。しかし、2番目のファイルで関数を実行しても、グローバル変数は作成されません。私は、同じ名前の別の変数を作成してみましたが、私は、変数をプリントアウトするとき、それは第二のファイルではなく、グローバルな値Pythonグローバル変数スコープ

globals.py

def default(): 
    global value 
    value = 1 

main.py

の値を出力します
from globals import * 
value = 0 
def main(): 
    default() 
    print value 

if __name__=='__main__': 
    main() 

これは0を出力します。私がvalue = 0をメインに持っていないと、プログラムはエラー(値が定義されていません)になります。私は、関数のglobals.py外にvalueを宣言すると

main.pyは、グローバル変数であることをvalueを取得するための適切な方法は何というdefault()

に設定された値よりも、グローバルvalueの値になりますPythonで?

答えて

5

Pythonのグローバルは、それらのモジュールでのみグローバルです。プロセス全体に対してグローバルに変更できる名前はありません。

あなたはこれであなたが望むものを達成することができます

globals.py:

value = 0 
def default(): 
    global value 
    value = 1 

はmain.py:

import globals 
def main(): 
    globals.default() 
    print globals.value 

if __name__ == "__main__": 
    main() 

私はこのような世界があるかどうかはわかりませんあなたの問題を解決する最善の方法です。

関連する問題