【发布时间】:2022-01-22 23:37:59
【问题描述】:
在对变量进行全局声明之前,有什么方法可以分配变量?我知道这样做是为了避免可能导致的问题,但为什么它会为一个不会成为问题的函数引发错误?考虑一个看起来像这样的函数
def func():
if "a" not in globals():
global a
a = 0
else:
global a
我试图让这在逻辑上不可能声明global a,并在locals() 中有a = 0。因为第一次调用函数时,它声明global a,然后为其分配一个全局值。对于之后的所有调用,a 不应该在locals() 中,那么为什么还要引发语法错误呢?
我知道我可以简单地将global a 移出if 循环以修复语法错误,但是有没有办法将global a 保留在else 循环中而不会引发语法错误?
【问题讨论】:
标签: python python-3.x syntax logic global-variables