有没有办法让字符串由函数的所有打印组成

时间:2018-02-28 16:26:42

标签: python

在类

中考虑以下方法
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

1 个答案:

答案 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))