【发布时间】:2010-11-19 11:31:10
【问题描述】:
我总是对这个事实感到恼火:
$ cat foo.py
def foo(flag):
if flag:
return (1,2)
else:
return None
first, second = foo(True)
first, second = foo(False)
$ python foo.py
Traceback (most recent call last):
File "foo.py", line 8, in <module>
first, second = foo(False)
TypeError: 'NoneType' object is not iterable
事实是,为了顺利解压,我必须捕获 TypeError 或拥有类似的东西
values = foo(False)
if values is not None:
first, second = values
这有点烦人。是否有改善这种情况的技巧(例如,在没有 foo 返回 (None, None) 的情况下将 first 和 second 都设置为 None )或关于我提出的案例的最佳设计策略的建议? *变量可能吗?
【问题讨论】:
标签: python return-value