对于我的程序,我有一个有值的对象和一个相同类型的对象列表
class WordAndList:
Word = ""
List = []
def __init__(self, word):
Word = word
在我创建了一些之后,我想把一个附加到另一个上
newWL = WordAndList("Hello")
secondWL = WordAndList("my")
newWL.List.append(secondWL)
但是,每当我尝试从newWL递归地访问元素(比如打印所有单词)时,我都会得到最大递归深度超出错误
为什么将一个对象附加到一个列表(其中该对象也有一个列表)会导致列表无限重复?发生附加时实际发生了什么
当我运行代码时,我没有得到它所完成的错误。这种差异可能是由于操作系统或类似的操作系统(我在
Ubuntu
,Python 2.7.6
)造成的,但是,我不认为代码做了您想要的事情按照它的编写方式,构造函数实际上并没有初始化任何对象级变量,只是一个局部变量。因此,对象的Word和List成员分别是空字符串和空列表
你会想要这样的东西:
就
append
而言,每次调用都会在列表的末尾添加另一个元素。因此,当您使用WordAndList的实例作为参数调用上述代码中的append
时,它实际上是将reference
附加到该对象的列表中例如,如果在
print
newWL.List中添加到pdb
之后,它会显示以下内容:相关问题 更多 >
编程相关推荐