我在程序中使用下面的 str 函数来表示2D表格
def __str__(self):
"""Returns a string representation of the table"""
return ('\n'.join(['|'.join([str(cell) for cell in row]) for row in self._table]))
如果我使用str()
,它会给我以下输出'1|2|3\n2|4|6\n3|6|9'
如何使用print()
将其显示如下1|2|3
2|4|6
3|6|9
我尝试将 str 定义如下:
def __str__(self):
"""Returns a string representation of the table"""
return print(('\n'.join(['|'.join([str(cell) for cell in row]) for row in self._table])))
使用str()
给出低于错误的输出1|2|3
2|4|6
3|6|9
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
str(MultiplicationTable(3))
TypeError: __str__ returned non-string (type NoneType)
答案 0 :(得分:0)
return print(('\n'.join(['|'.join([str(cell) for cell in row]) for row in self._table])))
您的__str__
函数实际上返回print
函数的结果(NoneType
,因为print
没有返回任何内容),而不是您的2d表的字符串。引导您获取此错误,因为__str__
应该返回一个字符串。它应该是:
return ('\n'.join(['|'.join([str(cell) for cell in row]) for row in self._table]))