在容器中打印用户定义的类实例时遇到一些问题。简而言之,如果我的代码是:
class A():
def __str__(self):
return 'abc'
class B():
def __str__(self):
return str(A())
a,b=A(),B()
C=[[a],b]
print(C)
然后输出应该像:[[<__main__.A object at 0x02D99910>], <__main__.B object at 0x02DD5030>]
,但是我希望它递归地应用定制的__str__
并且即使在嵌套列表或类中也可以工作,即我希望输出是[['abc'],'abc']
。有什么pythonic的方法吗?
@Blckknight应该已经提交了答案,因为这似乎是正确的答案(它适用于我非常相似的问题):
**改写repr()代替str()
def __repr__(self):
return "abc"
您也可以为完整性def str(self)添加此函数:return self。代表()
@Blckknight如果您想重新提交积分的答案,则应该这样做。我希望我可以添加评论,但是我没有做到这一点的声誉。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句