2017-05-19 14 views
1

Ich erklärte globale Variable in sample1.py wie diese undWie aktualisiere ich eine globale Variable in Python?

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

In sample2.py Aktualisierung ich diese globale Variable am Import

sample2.py 
from sample1 import var 

def foo1(): 
    print var 

aber noch ist es Druck "0" statt "10". Wenn Sie es in sample1.py drucken, wird "10" gedruckt.

Was ist schiefgelaufen?

+1

wie better sagte, Sie importieren nur 'var' von' sample1.py' nicht die Einstellung auf 10 – WhatsThePoint

Antwort

3

Was falsch ist, ist, dass die Funktion von sample1.py nie genannt wird, ergo Sie Variable mit 10 nie initialisiert

Richtigen Weg

Sample1.py

var = 0 
def Function1: 
    var = 10 

Sample2.py

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

Weil Sie die Funktionnicht aufgerufen habenin sample2.py, im Moment nur die Variable mit 0 deklariert, wenn Sie die Funktion foo() aufrufen, dann wird nur aktualisiert.

Update sample2.py wie diese,

from sample1 import var,foo 
foo() 

def foo1(): 
    print var 
0

Eigentlich, auch wenn Sie bereits Funktion foo genannt haben, wird es nicht funktionieren. Denn wenn Sie from sample1 import var verwenden, erhalten Sie nur eine Kopie von sample1.var, aber nicht wirklich den Zeiger davon. Es wird also nicht aktualisiert, wenn sample1.var aktualisiert wird.

Verwandte Themen