【发布时间】:2018-08-10 02:02:48
【问题描述】:
我正在使用他的代码来扁平化嵌套元组:
def get_tuple_leaves(t, out=[]):
for i in t:
if isinstance(i, str):
yield i
else:
get_tuple_leaves(i, out)
想法是得到一个输入如(('a', 'b'), 'c') 转为('a', 'b', 'c')
但由于某种原因,递归调用永远不会被执行,并且输出是 ('c')
【问题讨论】:
-
out变量的用途是什么?你没有用它做任何事情。 -
另外,假设您的
out的默认值实际上是在做某事,如果您不了解它的语义,您应该小心使用可变默认参数