我将rate
初始化为全局变量:
import os, sys
rate=30
def foo():
print('#########rate:', rate)
if False:
rate=int(sys.argv[2])
foo()
但是在运行脚本时,出现以下错误:
Traceback (most recent call last):
Line 10, in <module>
foo()
Line 5, in foo
print('#########rate:', rate)
UnboundLocalError: local variable 'rate' referenced before assignment
尽管
if False: rate=int(sys.argv[2])
语句未执行,但似乎有一定影响,是否有一些python规则对此进行了说明? 最佳答案
您应该将rate
声明为全局:
import os, sys
rate=30
def foo():
global rate # <----
print('#########rate:', rate)
if False:
rate=int(sys.argv[2])
foo()
如果分配了一个变量(没有全局声明),则将其视为局部变量。
关于python - 全局变量变为局部--UnboundLocalError:分配前引用了局部变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18559320/