ich Python lernen und lief dieses Stück Code in der Python-Konsole früher heute:Sind lokale Variablen in Generatorfunktionen nicht verfügbar?
num = 0
def generator():
while True:
yield num
num += 1
for i in generator():
if i > 5: break
print(i)
Es hat einen
UnboundLocalError: local variable 'num' referenced before assignment
warf ich wieder schrieb den Code und diese Version gearbeitet:
def generator():
num = 0
while True:
yield num
num += 1
for i in generator():
if i > 5: break
print(i)
Meine Frage ist das: Können Sie nicht lokale Variablen in Generatorfunktionen verwenden, wie Sie mit regulären Funktionen können?
'num' ist nicht lokal zu Ihrer Funktion im Fehlercode – UnholySheep
@UnholySheep wenn ich eine Funktion definiere,' test() 'mit' print (num) 'darin und rufe' test() 'in der Konsole auf, es druckt 0. – Vinayak
@Vinayak aus der akzeptierten Antwort der verknüpften Frage: "Wenn Sie einfach auf eine globale Variable zugreifen möchten, verwenden Sie einfach seinen Namen. Um jedoch seinen Wert zu ändern, müssen Sie das globale Schlüsselwort verwenden." – Mephy