我遇到了一个奇怪的问题。我有一个带有以下代码的文件history.py:
from speech_controls.nav_object import NavObject
"""Sets up the chat and text history buffers."""
chat_history = NavObject()
text_history = NavObject()
在其他模块中,我导入历史记录,并执行以下操作:
history.chat_history.AddItem(some_str)
由于某些原因,Python似乎正在创建一个对象而不是两个,正如上面的代码所暗示的那样。也就是说,text_history和chat_history指向同一个对象。有谁知道为什么会这样?此外,如果有更多的Pythonic方式,我肯定想知道。
答案 0 :(得分:3)
停止使用类属性。在初始化程序中初始化属性。
class Foo(object):
bar = []
baz = {}
class Foo(object):
def __init__(self):
self.bar = []
self.baz = {}