【发布时间】:2011-10-06 08:27:41
【问题描述】:
我想迭代一个未知函数的输出。不幸的是,我不知道该函数是返回单个项目还是一个元组。这一定是一个标准问题,并且必须有一个标准的方法来处理这个问题——我现在所拥有的非常丑陋。
x = UnknownFunction()
if islist(x):
iterator = x
else:
iterator = [x]
def islist(s):
try:
len(s)
return True
except TypeError:
return False
for ii in iterator:
#do stuff
【问题讨论】:
-
标准方法是让函数返回一个 1 元组。
-
@Ignacio:当然,如果您可以控制该功能。这个问题似乎是说他没有。
-
@Fred Larson:你总是至少拥有这么多的控制权:
lambda *a, **kw: (f(*a, **kw), )。 -
@Rosh,那么你必须测试结果是否嵌套在一个元组中。
-
@senderle:希望在某个级别上该函数是已知的并且可以被包装。我还没有看到不可预测的 API。 ;)
标签: python