The most common reason for this error is that you’re using multiple global declarations in the same function. Consider this example:
x = 0 def func(a, b, c): if a == b: global x x = 10 elif b == c: global x x = 20
If you run this in a recent version of Python, the compiler will issue a SyntaxWarning pointing to the beginning of the func function.
Here’s the right way to write this:
x = 0 def func(a, b, c): global x # <- here if a == b: x = 10 elif b == c: x = 20
参考:http://effbot.org/zone/syntaxwarning-name-assigned-to-before-global-declaration.htm
本文介绍了一个常见的Python语法警告——在使用全局变量前未正确声明。通过一个示例展示了错误的用法及其修正方法。
309





