2017-05-19 16 views
1

私はこのようなsample1.pyでグローバル変数を宣言すると、私はこのグローバル変数Pythonでグローバル変数を更新するにはどうすればよいですか?

sample2.py 
from sample1 import var 

def foo1(): 
    print var 

をインポートしていますが、まだそれは代わりに「0」を印刷しているsample2.pyで

sample1.py 
var = 0 
def foo(): 
    global var 
    var = 10 

を更新しています"10"。それをsample1.pyに印刷すると "10"が印刷されます。

何が問題になりましたか?間違って何

+1

berthosのように、 'sample1.py'から' var'をインポートするだけではなく、10に設定する – WhatsThePoint

答えて

3

は、変数が10

正しい方法

Sample1.py

var = 0 
def Function1: 
    var = 10 

Sample2.pyで初期化されることはありませんERGO、sample1.pyから関数が呼び出されないということです

import Sample1 
Sample1.Function1() 
print(Function1.var) 
0

という関数を呼び出さなかったため関数foo()を呼び出すと、0という変数が宣言され、更新されるのは、foo()ののsample2.pyです。このような

更新sample2.py

from sample1 import var,foo 
foo() 

def foo1(): 
    print var 
0

実は、すでに機能foo呼ばれているにもかかわらず、それは動作しません。 from sample1 import varを使用すると、sample1.varのコピーが得られますが、実際にはそのポインタは取得されません。したがって、sample1.varが更新されると更新されません。

関連する問題