繁体   English   中英

python全局命名空间不可访问

[英]python global namespace not accessible

我可以在同一目录中运行 API.py,但不能运行 APP.py。 错误是“NameError: name 'a' is not defined”。 global() 真的是全球性的吗?

API.py:

class Entity():
    def __init__(self,name,value):
        globals()[name]=value

if __name__ == '__main__':
    Entity('a',1)
    print(a)

应用程序

from API import Entity

if __name__ == '__main__':
    Entity('a',1)
    print(a)

全局变量只能被模块中的每个函数访问,而不能被其他导入模块中的函数访问。

而不是让实体直接设置全局变量,也许你可以让它返回值,然后在 APP.py 中编写代码来全局设置值。

另一种方法是将您的全局变量放在一个由其他人导入的共享模块中,然后每个模块都可以读/写它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM