我正在尝试从我将使用 import tmp_test.main
调用 tmp_test
的模块中导入 main
。
main.py
看起来像这样:
def func():
global x
x:int = 1
在交互式 shell 中运行此代码没有问题,但是当我尝试导入它或使用 python main.py
从命令行运行它时,我得到:
SyntaxError: annotated name 'x' can't be global
这是为什么?
将语句的顺序调换为:
x:int = 1
def func():
global x
工作正常。
不包括注解:int
def func():
global x
x = 1
也很好用。
最佳答案
关于python - 为什么声明顺序对于模块中带注释的全局变量很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60466092/