2016-09-17 4 views
-1

以下の機能が正常に動作します:エラーなぜこの関数はエラーをスローしますか?

def ex(): 
    for x in a: 
     print(x) 
    a=0 
a=[200] 
ex() 

ですが、なぜでしょう?:

def ex(): 
    for x in a: 
     print(x) 
a=[200] 
ex() 

しかし、以下では、「ローカル変数 『』代入する前に参照さUnboundLocalError」スロー

+1

[Python変数スコープエラー]の可能な複製(http://stackoverflow.com/questions/370357/python-可変スコープエラー) –

答えて

0

最初の例では、aはグローバル変数aを参照しています。第二に、pythonはあなたの行a=0を解釈し、これにより、あなたはローカル変数を意味すると考えます。このエラーを修正するには、aを2番目のパラメータとして指定するか、関数の最初の行にglobal aを書き込むことができます。

関連する問題