Python全局变量通过导入



这种形式的全局变量声明在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之前处理。这为我打印了一个空的dict {}

这是上一篇文章中的一个简化问题:Django中URL和上下文处理器之间的共享/全局词典。感谢您的真知灼见。

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

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

(如评论中所指出的)

那么这个问题就变得有趣了。

这是可以的,但最好有另一个数据接口(函数、方法)。这是一种存储模块状态的方法。您称之为myClass(!)的对象在a和b中都是相同的。

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

相关内容

  • 没有找到相关文章