在 python 中打印实例时无限递归
infinite recursion when printing instance in python
当我执行以下代码时出现运行时错误(最大递归)。
我正在尝试生成实例列表;然后我想打印每一个。我不确定这里发生了什么。
不管怎样,从实例列表中访问每个实例的正确方法是什么?
我意识到我正在使用一串数字来命名实例,这并不酷。但是假设列表中的每个数字都与一堆信息相关联。然后为每个属性设置属性可以使事物易于访问。我尝试使用字典,但最终得到的是嵌套字典,我就是不喜欢它。
提前致谢。
class MyClass(object):
def __str__(self):
stuff= str(self)
return stuff
mylist = ['1234567','8910111','1213144','7654321']
inslist = [MyClass() for i in mylist]
print inslist[0]
问题出在您的 __str__
上。如果你调用str(self)
,它会调用自己。我想你的意思是:
class MyClass(object):
def __init__(self, i):
self.i = i
def __str__(self):
return str(self.i)
mylist = ['1234567','8910111','1213144','7654321']
inslist = [MyClass(i) for i in mylist]
print inslist[0]
当我执行以下代码时出现运行时错误(最大递归)。 我正在尝试生成实例列表;然后我想打印每一个。我不确定这里发生了什么。 不管怎样,从实例列表中访问每个实例的正确方法是什么?
我意识到我正在使用一串数字来命名实例,这并不酷。但是假设列表中的每个数字都与一堆信息相关联。然后为每个属性设置属性可以使事物易于访问。我尝试使用字典,但最终得到的是嵌套字典,我就是不喜欢它。
提前致谢。
class MyClass(object):
def __str__(self):
stuff= str(self)
return stuff
mylist = ['1234567','8910111','1213144','7654321']
inslist = [MyClass() for i in mylist]
print inslist[0]
问题出在您的 __str__
上。如果你调用str(self)
,它会调用自己。我想你的意思是:
class MyClass(object):
def __init__(self, i):
self.i = i
def __str__(self):
return str(self.i)
mylist = ['1234567','8910111','1213144','7654321']
inslist = [MyClass(i) for i in mylist]
print inslist[0]