无法创建类的两个不同实例

时间:2012-03-06 02:34:12

标签: python

我遇到了一个奇怪的问题。我有一个带有以下代码的文件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方式,我肯定想知道。

1 个答案:

答案 0 :(得分:3)

停止使用类属性。在初始化程序中初始化属性。

错误:

class Foo(object):
  bar = []
  baz = {}

右:

class Foo(object):
  def __init__(self):
    self.bar = []
    self.baz = {}