在 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]