通过导入Python全局变量?

时间:2012-01-25 22:18:58

标签: python import global-variables

这种形式的全局变量声明是Python的良好实践吗?在某些情况下,我的字典在B.py中没有数据。似乎不一致。

classes.py

class Aclass:
    dict = {}

myClass = Aclass()

A.py:

from classes import myClass

myClass.dict["variable"]

B.py:

from classes import myClass

print str(myClass.dict)

A.py在B.py之前处理。这会为我打印一个空的字典{}

这是以前帖子中的简化问题:Shared/Global Dictionary in Django Between URLs and Context Processor。非常感谢您的见解。

1 个答案:

答案 0 :(得分:2)

如果在A.py中将其更改为

myClass.dict["variable"]="hello"

(正如评论中所指出的)

然后问题变得有趣了。

没关系,但最好还有另一个接口(函数,方法)来处理这些数据。这是一种存储模块状态的方法。您调用myClass(!)的对象与a和b都是相同的。

多个导入是安全的,除了返回相同的已加载模块外什么都不做。