【发布时间】:2020-06-06 13:14:00
【问题描述】:
我有时会遇到这样一种情况,即我正在使用一个生成器,其成员本身就是生成器(等等 n 个级别)。
调试的时候,把这些结果打印到没用的<generator object blah at blah>
显然我可以通过print(list(my_gen)) 将顶层转换为列表。但后来我得到了
[<generator object blah at blah>, <generator object blah at blah>, <generator object blah at blah>]
同样没用。
是否有一个简单的命令可以打印一个嵌套生成器,一路向下评估?
我知道我可以编写一个递归函数来执行此操作,但我正在寻找一种简单的方法。
【问题讨论】:
-
this 可能是相关的。注意递归打印生成器会耗尽它们(如果你不使用
tee或其他东西) - 所以打印它们会改变它们。 -
“我知道我可以写一个递归函数来做到这一点,但我正在寻找一种简单的方法。”那是一个简单的方法。你也不必使用递归,但无论如何,你必须写一些东西,因为如果你正在寻找的话,没有内置的解决方案
-
@juanpa.arrivillaga 我们可以不使用递归吗?你能否详细说明如何做到这一点。我认为递归是唯一的方法。
标签: python python-3.x debugging generator pretty-print