Python AttributeError在使用成员变量时出错

Python AttributeError在使用成员变量时出错,python,Python,我对Python在访问变量时抛出AttributeError有问题 代码如下,为清晰起见进行了编辑 class mycollection(object): """ Collection of stuff. """ #"compile-time" define class variables. __slots__ = ["stuff_list"] def __init__(self): self.stuff_list = []

我对Python在访问变量时抛出AttributeError有问题

代码如下,为清晰起见进行了编辑

class mycollection(object):
    """
    Collection of stuff. 
    """
    #"compile-time" define class variables.
    __slots__ = ["stuff_list"]

    def __init__(self):
        self.stuff_list = []

    def add_stuff(self, stuff):
        self.stuff_list.append(stuff)


#later on..
collection = mycollection()
stuff = stuff()
collection.add_stuff(stuff)
正在生成此错误

Traceback (most recent call last):
  File "", line 210, in <module>
    main()
  File "", line 206, in main
    thestuff = load_file(inputfile, filetype)
  File "pyyft.py", line 121, in load_file
    collection.add_stuff(stuff)
  File "pyyft.py", line 55, in add_test
    self.stuff_list.append(stuff)
AttributeError: stuff_list
回溯(最近一次呼叫最后一次):
文件“”,第210行,在
main()
文件“”,第206行,主
thestaff=load_文件(输入文件,文件类型)
加载文件中第121行的文件“pyyft.py”
集合。添加内容(内容)
文件“pyyft.py”,第55行,添加测试
self.stuff\u list.append(stuff)
AttributeError:stuff\u列表

通过检查,我不明白为什么会出现这个错误。

应该是
\uuuu init\uuuu
这不是“更像Pythonic”吗


collection.stuff\u list.append(test\u stuff)

在代码中的某个地方,您必须(呃,可能)有字符串“test\u stuff”。请发布该代码。修复了
\uuuu init\uuuu
中的打字错误-如果您复制/粘贴了该代码,您可能需要在源代码中修复它。还有,你使用
\uuuuuu插槽\uuuuuuuu
有什么特别的原因吗?@Jed-是的,我在避免自动激活durp。当计时器正常时接受传入。我看到Jed Smith编辑了这个问题,但我怀疑这就是原因。有人能给我解释一下
test\u stuff
stuff\u list
是如何关联的吗?玩弄对象的内部状态不是Pythonic,因为你可以。我不完全理解“pythonic”的概念,但我知道你的建议在对象和对象所在的范围之间存在信息泄漏。换句话说,它增加了模块之间的代码耦合。换句话说,它打破了OO范式。无论您如何称呼它,它都会使代码维护和演化更加困难。