【发布时间】:2011-03-27 19:06:23
【问题描述】:
假设如下:
def MyFunc(a):
if a < 0:
return None
return (a+1, a+2, a+3)
v1, v2, v3 = MyFunc()
# Bad ofcourse, if the result was None
定义一个返回元组但又可以很好地调用的函数的最佳方法是什么。目前,我可以这样做:
r = MyFunc()
if r:
v1, v2, v3 = r
else:
# bad!!
pass
我不喜欢的是我必须使用单个变量然后解压它。
另一个解决方案是我可以让函数返回一个满是 None 的元组,以便调用者可以很好地解包....
谁能推荐更好的设计?
【问题讨论】:
-
哪个更pythonic - 返回None或返回一个无元组?