您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python:实例没有属性

Python:实例没有属性

您的课程没有__init__(),因此在实例化该属性时,该属性atoms不存在。你不得不做C.setdata('something')这样C.atoms变为可用。

>>> C = Residues()
>>> C.atoms.append('thing')

Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    B.atoms.append('thing')
AttributeError: Residues instance has no attribute 'atoms'

>>> C.setdata('something')
>>> C.atoms.append('thing')   # Now it works
>>>

与Java之类的语言不同,在Java中您可以在编译时知道对象将具有哪些属性/成员变量,而在Python中,您可以在运行时动态添加属性。这也意味着同一类的实例可以具有不同的属性

为了确保始终有一个atoms列表(除非您将其弄乱了,否则这是您自己的错),可以添加一个构造函数

def __init__(self):
    self.atoms = []
python 2022/1/1 18:35:42 有223人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶