Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 全局变量的条件重写,局部不可用_Python 3.x_Global Variables_Overriding_Conditional - Fatal编程技术网

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
将永远不会运行。为什么会出现在代码中?好吧,就是这样;)谢谢