2017-02-06 6 views
0

同じ変数への他の参照は存在しないが、存在しない場合は囲むスコープ(ここではグローバルスコープ)にアクセスできるPythonではなぜこれが機能しないのですか?ビルド名前空間のスコープスコープと実行順序

インタープリターは、変数定義の前に関数を先に見ていますが、変数がまだ値を割り当てられていないローカル変数だけであると見なしますか?通訳の実行順序はどうですか?

> a = 5 
> a 
Out[3]: 
5 
> def closure(): 
    print(a) 

> closure() 
5 
> def closure(): 
    print(a) 
    a = "another" 
    return a 
> closure() 

UnboundLocalError: local variable 'a' referenced before assignment 

答えて

0

global aを関数の最初の行に追加します。