这种形式的全局变量声明是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。非常感谢您的见解。
答案 0 :(得分:2)
如果在A.py中将其更改为
myClass.dict["variable"]="hello"
(正如评论中所指出的)
然后问题变得有趣了。没关系,但最好还有另一个接口(函数,方法)来处理这些数据。这是一种存储模块状态的方法。您调用myClass(!)的对象与a和b都是相同的。
多个导入是安全的,除了返回相同的已加载模块外什么都不做。