SyntaxWarning:名前 'x'はグローバル宣言の前に割り当てられますglobalx
Syntaxwarning Namex Is Assigned Before Global Declaration Global X
発生した問題のうち、解決されていないものをいくつか示します。
上記のエラーの1つが表示されましたが、エラーの根本的な原因がわかりません。
Pythonの世界的な使用は比較的少ないです(それは仕事で使用されていないと言われるべきです)。グローバルの最も一般的なシナリオは、関数varの外部で定義された変数を使用する関数である必要があります。
これが私が書いたいくつかの例であり、いくつかは構文警告を報告し、いくつかは報告しませんでした。
Python 2.7.5
- 例:
# filename: a.py x = 0 def func(a, b, c): if a == b: global x x = 10 #elif b == c: # global x # x = 20
出力
$ python a.py No
- 例
# filename: a.py x = 0 def func(a, b, c): if a == b: global x x = 10 elif b == c: global x x = 20
出力
$ python a.py a.py:9: SyntaxWarning: name 'x' is assigned to before global declaration global x
- 例
# filename: b.py var = 'xxx' if __name__ == '__main__': global var var = 'yyy'
http://effbot.org/zone/syntaxwarning-name-assigned-to-before-global-declaration.htm
前書き:
この問題について言及しましたが、明確に説明していませんでした。
http://www.cnblogs.com/shadow21/p/3573918.html
前書き:
'globalはグローバル変数であることを説明します。 xの値が以前に定義されている場合、それ以降のxの値は変更できません。
Python名前空間が関係しているようですが、LEGBとは何の関係もありません...