我有一个类Numberlist
,它接受数字列表。
class Numberlist:
def __init__(self,number):
self.number=number
def __str__(self):
for i in self.number:
print(i)
return '{}'.format('')
我想在打印对象时以以下格式显示数字列表。
x = Numberlist([1,2,3,4,5,6])
print(x)
print("done printing")
1
2
3
4
5
6
done printing
我的尝试不正确,因为输出末尾有一个空行。我陷入困境,因为 __str__
要求您返回字符串类型元素。
最佳答案
你所看到的
您会看到一个额外的换行符,因为您正在打印 __str__
函数中列表中的每个元素,然后打印从 __str__
返回的值:即 “”
。除非您在 print
中指定 end
,否则它默认为换行符,因此您实际上是在打印 "\n"
。
你(可能)想做的事情
您可能只想打印类的字符串化表示形式。如果每个元素都以换行符分隔,我将按以下方式定义 __str__
:
def __str__(self):
return '\n'.join(map(str, self.number))
这将在 self.number
中每个元素的字符串表示形式之间放置一个换行符并返回该单个字符串。
关于python - 在 python 中,如何使用 __str__ 逐行返回列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309372/