2016-04-16 9 views
0

前に参照のローカル変数 '合計' 申し訳ありませんが、私の英語は非常に良いではありません、しかし、私は、私はそれを明確にすることができると思いUnboundLocalError:割り当て

CODE1:

# coding:utf-8 
 

 
sum = 5 
 

 
def add(x, y): 
 
\t print sum 
 
\t sum = x + y 
 

 
if __name__ == '__main__': 
 
\t add(7, 8)

このコードを実行すると、エラーが発生します。以下はエラーメッセージです。

ssspure:python ssspure $ python test.py トレースバック(最新の呼び出しの最後):ローカル変数 ':追加 プリント和 UnboundLocalErrorで アドオン(7、8) ファイル "test.py"、6行目で ファイル "test.py"、11行目、割り当て

CODE2前に参照合計」:

# coding:utf-8 
 

 
sum = 5 
 

 
def add(x, y): 
 
\t sum = x + y 
 
\t print sum 
 

 
if __name__ == '__main__': 
 
\t add(7, 8)

私はコード2正常に実行することができます

私は "sum = x + y"文の下にある "print sum"を移動するだけです。なぜcode1にエラーがあり、code2が正常に実行されたのですか?

+0

#コードとして和をinnitialized \t add(7,8) このコードもエラーになります – ssspure

答えて

0

コード1の場合:

合計を宣言していません。 add関数の外で定義した合計は、add関数の合計には影響しません。

あなたの関数にsum = 0を入れるだけで問題ありません。

実際、あなたのコードでそうしています2。 __name__ == '__main__' の場合 \t和=和+ X :DEF(x、y)を追加し、UTF-8 和= 5 :あなたは、x + yの

関連する問題