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

Python 无法创建一个类的两个不同实例,python,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

我遇到了一个奇怪的问题。我有一个文件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指向同一个对象。有人知道为什么会发生这种情况吗?另外,如果有一种更符合python的方法来实现这一点,我当然想知道。

停止使用类属性。在初始值设定项中初始化属性

错: 正确的:
停止使用类属性。在初始值设定项中初始化属性

错: 正确的:
你确定
NavObject
不是单例类吗?我没有实现任何功能来确保只有一个NavObject实例可以存在,如果这是你的意思的话。@MikeF:请在这里发布
NavObject
类的代码。这显然是一个与工作方式有关的问题。另外,您的代码不正确(请参阅问题中显示的缩进并更正)。您确定
NavObject
不是一个单例类吗?如果您的意思是这样的,我不会实现任何功能来确保只有一个NavObject实例可以存在。@MikeF:请在这里发布
NavObject
类的代码。这显然是一个与工作方式有关的问题。另外,您的代码不正确(请参阅问题中显示的缩进并更正)。我不相信我在任何类中都这样做。NavObject的属性在构造函数中初始化。我不认为这是问题所在。@MikeF:你需要发布你的init方法(或者至少是它的一些最小版本),否则人们将无法找到它。以上的答案是99%的情况下的问题。我不相信我在任何课堂上都会这样做。NavObject的属性在构造函数中初始化。我不认为这是问题所在。@MikeF:你需要发布你的init方法(或者至少是它的一些最小版本),否则人们将无法找到它。上述问题的答案是,在这些情况下,99%的时间都是这样。
class Foo(object):
  bar = []
  baz = {}
class Foo(object):
  def __init__(self):
    self.bar = []
    self.baz = {}