我有一个班级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__
要求你返回字符串类型元素。
答案 0 :(得分:2)
您看到了一个额外的换行符,因为您打印了__str__
函数列表中的每个元素,然后打印了__str__
返回的值:即""
。除非您在end
中指定print
,否则默认为换行符,因此您可以有效地打印"\n"
。
您可能只想打印类的字符串表示形式。如果每个元素都是换行符分隔的,我会按以下方式定义__str__
:
def __str__(self):
return '\n'.join(map(str, self.number))
这将在self.number
中的每个元素的字符串表示形式之间添加换行符并返回该单个字符串。