我可以运行 API.py,但不能运行同一目录中的 APP.py。错误是“NameError:名称'a'未定义”。 global() 真的是全局的吗?
API.py:
class Entity():
def __init__(self,name,value):
globals()[name]=value
if __name__ == '__main__':
Entity('a',1)
print(a)
APP.py
from API import Entity
if __name__ == '__main__':
Entity('a',1)
print(a)
最佳答案
全局变量只能由模块中的 every 函数访问,而不能由其他导入模块中的函数访问。
您可以让它返回值,然后在 APP.py 中编写代码来全局设置值,而不是让实体直接设置全局变量。
另一种方法是将全局变量放在由其他人导入的共享模块中,然后每个模块都可以对其进行读/写访问。
关于python 全局命名空间不可访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636609/