gpt4 book ai didi

python - __repr__() 返回非字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:10:25 26 4
gpt4 key购买 nike

所以我有一个类方法,我想用它来绘制字典及其值:

 def __repr__ (self): 
for row in zip(*([ky]+map(str,val) for ky,val in (self.slovar.items()))):

print"\t".join (row)

如果是这样,我会得到想要的输出:

>>> test
n n1 n2
1 a 2.3
2 b 2.1
3 d 2.5

Traceback (most recent call last):
File "<pyshell#521>", line 1, in <module>
test
TypeError: __repr__ returned non-string (type NoneType)

还有回溯错误。

如果我返回值而不是打印出来,我只会得到这个:

>>> test
n n1 n2

如果我创建一个自定义方法而不是默认的“系统”方法,它工作正常......(我需要它是默认的)

最佳答案

您的__repr__ 方法使用print 输出信息,但没有return 语句,因此它实际上返回None,这不是一个字符串。


你可以做的是:

def __repr__ (self): 
parts = []
for row in zip(*([ky]+map(str,val) for ky,val in (self.slovar.items()))):
parts.append("\t".join (row))
return '\n'.join(parts)

您可能还想看看 the pprint module .

关于python - __repr__() 返回非字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725538/

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