【发布时间】:2021-06-28 00:34:44
【问题描述】:
我一直找不到这件事对我不起作用的原因,所以我想在这里问一个问题。
我有 2 个文件:
file2.py:
def test():
global justTry
justTry = "hello"
和main.py:
from file2 import *
def main():
print(justTry)
if __name__ == '__main__':
test()
main()
我收到错误:NameError: name 'justTry' is not defined。
为什么我不能使用我在列表之前的步骤中声明为全局变量的justTry 变量?
【问题讨论】:
-
是否调用了
test()函数,它初始化了全局?或者,是否在函数外部初始化了全局? (我可以插话说全局 变量 绝对是一个“坏主意”,并建议可能有一种更强大的方法。) -
@pinkfloydx33 - 我试过了。我在main()函数中分配了“global justTry”,但还是同样的错误。
-
@S3DEV 我知道这不是最好的主意,但我想知道为什么它不起作用。 test() 函数被调用 100%,我直接从函数中尝试了语句,一切正常。
-
这是可能,因为在执行
import *时变量还不存在,但我会留给其他人写一个实际的答案并解释语义详细... -
global关键字将变量定义为全局在其所在模块的上下文中,而不是在模块之间。另外,来自官方 Python 常见问题解答:How do I share global variables across modules?
标签: python python-3.x global-variables