Python 3.x 全局变量的条件重写,局部不可用
为什么这是不可能的Python 3.x 全局变量的条件重写,局部不可用,python-3.x,global-variables,overriding,conditional,Python 3.x,Global Variables,Overriding,Conditional,为什么这是不可能的 CONSTANT = 1 def main(): if False: CONSTANT = 0 print(CONSTANT) main() 错误: UnboundLocalError: local variable 'CONSTANT' referenced before assignment 显式赋值不会改变任何内容: CONSTANT = 1 def main(): CONSTANT = CONSTANT if Fal
CONSTANT = 1
def main():
if False:
CONSTANT = 0
print(CONSTANT)
main()
错误:
UnboundLocalError: local variable 'CONSTANT' referenced before assignment
显式赋值不会改变任何内容:
CONSTANT = 1
def main():
CONSTANT = CONSTANT
if False:
CONSTANT = 0
print(CONSTANT)
main()
只有更改名称才能执行作业:
CONSTANT = 1
def main():
constant = CONSTANT
if False:
constant = 0
print(constant)
main()
这有点烦人,我能以某种方式避免这种行为吗?将
常量定义为全局变量
CONSTANT = 1
def main():
global CONSTANT
print(CONSTANT)
CONSTANT = 0
print(CONSTANT)
main()
如果为False
将永远不会运行。为什么会出现在代码中?好吧,就是这样;)谢谢