如何返回而不是打印

问题描述 投票:0回答:1

我希望有人可以帮助我吗?我可以通过使用print()获得所需的结果,但是在使用return时希望得到相同的结果。如何将其更改为退货?当我执行此操作时,它仅返回第一个键,值是我想让dict()中包含四个键。

 def inOrder(self, aNode):
       if aNode:
        self.inOrder (aNode.leftChild)
        print (aNode.key + ' ' + aNode.payload +'\n')
        self.inOrder (aNode.rightChild)
python-3.x calling-convention
1个回答
0
投票

要完全执行您想要的操作,您需要使用yield关键字:

 def inOrder(self, aNode):
       if aNode:
        yield from self.inOrder(aNode.leftChild)
        yield (aNode.key, aNode.payload)
        yield from self.inOrder(aNode.rightChild)

但是,您还可以拥有一个特定的变量,在您浏览过程中将对其进行更新:

 def inOrder(self, aNode, res=[]):
       if aNode:
        self.inOrder(aNode.leftChild, res)
        res.append((aNode.key, aNode.payload))
        self.inOrder(aNode.rightChild, res)

将会提供相似的结果。

© www.soinside.com 2019 - 2024. All rights reserved.