python 全局命名空间不可访问

标签 python namespaces global

我可以运行 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/

相关文章:

facebook - 无法编辑 <html> 标签,如何添加 FB Namespace

php - Laravel 基于var 调用静态函数

node.js - Node typescript 全局服务从函数返回值

javascript - 在selenium python中仅选择带有标题标签的Web元素

python - 防止数据库中数据重复

python - 使用 genfromtxt 加载数据时如何替换值

node.js - 这是创建全局 const 变量的正确方法吗?

python - 如何根据条件有效地将函数应用于数组中的值?

php - 命名空间和类扩展

python - 使用 globals() 创建类对象