不返回或元组并解包
发布于 2021-01-29 17:17:34
我总是为这个事实而烦恼:
$ 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)的情况下,将第一个和第二个都设置为None)或针对我所提出的案例提出最佳设计策略的建议?*变量可能吗?
关注者
0
被浏览
52
1 个回答