私は、Pythonを学習し、それ以前の今日のpythonコンソールでコードのこの部分を走っています:ローカル変数はジェネレータ関数内でアクセスできませんか?
num = 0
def generator():
while True:
yield num
num += 1
for i in generator():
if i > 5: break
print(i)
それは私が再書いたコードと、このバージョン働いUnboundLocalError: local variable 'num' referenced before assignment
投げた:
def generator():
num = 0
while True:
yield num
num += 1
for i in generator():
if i > 5: break
print(i)
を
私の質問はこれです:通常の関数でできるように、ジェネレータ関数内でローカル変数を使用できませんか?
'num'は失敗したコードの関数にローカルではありません – UnholySheep
@UnholySheep関数内に' print(num) '関数を定義して' test() 'を呼び出すと、リンクされた質問の受け入れられた答えから0 – Vinayak
@Vinayakを印刷します: "単にグローバル変数にアクセスしたいのであれば、その名前を使うだけですが、その値を変更するにはグローバルキーワードを使う必要があります。 – Mephy