在类
中考虑以下方法def printlist(self):
traverser = self.head
while traverser.next:
print(traverser.val, end=", ")
traverser = traverser.next
else:
print(traverser.val)
此方法返回None但打印内容(如1,2,3) 。我的目标是获取由printlist方法打印的字符串,以便它可以用于返回对象的字符串表示,如下所示
def __str__(self):
str_output = some_magic(self.printlist())
return str_output
答案 0 :(得分:0)
目前,您的函数需要执行两项操作:查找值并构造(并打印)字符串。函数应该尝试做一件事。
使用两个单独的功能。
对于值,只使用递归:
def list_values(traverser):
# yield all values from the linked list
yield traverser.val
if traverser.next:
yield from list_values(traverser.next)
为了构造字符串,有一个内置的:
expected = ', '.join(some_magic(traverser))