始终确保您的返回值是可以相互一致使用的类型。
在 python 中,函数的类型是隐式的。这意味着程序员可以创建任何类型的函数(这很棒),但这意味着作为程序员的你必须小心选择类型。简而言之:您应该在文档字符串中描述返回类型,如果这听起来是个坏主意,或者是一个难以使用的函数,那就是。
这里正确的是:
def test(a):
''' Always returns a 3-tuple, composed of Flag,data,data. Data may be None '''
if a > 0:
return True, None, None
else:
return False, 123, 'foo'
flag,data1,data2 = test(a)
或者
def test(a):
''' Always returns a tuple, composed of a Flag, followed by 0 or more data items '''
if a > 0:
return True,
else:
return False, 123, 'foo'
return = test(a)
flag,rest = return[0],return[1:]
for x in rest: print x