gpt4 book ai didi

Python:如何在打印中递归应用 __str__

转载 作者:行者123 更新时间:2023-12-03 21:31:08 26 4
gpt4 key购买 nike

我在容器中打印用户定义的类实例时遇到了一些问题。简而言之,如果我的代码是:

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 应该作为答案提交,因为这似乎是正确的答案(它适用于我非常相似的问题):

**覆盖 repro () 而不是 str ()

def __repr__(self):
return "abc"

您也可以添加此内容以确保完整性
def str (self):
回归自我。 再现 ()

@Blckknight 如果你想重新提交作为分数的答案,你应该。我希望我可以添加评论,但我没有这样做的声誉。

关于Python:如何在打印中递归应用 __str__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35121902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com