函数默认仅返回第一个输出值

时间:2018-04-16 14:01:21

标签: python python-3.x function

假设我有一个功能:

def my_func():
    return 1,2

我想要的:如果我这样称呼函数:

a = my_func()

我希望它返回仅第一个输出参数,即1; 如果我致电a,b = my_func(),则会返回 - a=1b=2

此任务是关于向后兼容性的:当我仅使用a = my_func()时,我已经有很多脚本,现在我想添加额外的功能。但现在a实际上是一个元组,由两个值组成:(1,2)

有可能吗?

2 个答案:

答案 0 :(得分:1)

没有输出参数。该函数返回tuple

如果您想更改实际的回报,价值,只能通过提供单独的参数来完成:

def my_func(first_only=False):    
    return 1 if first_only else 1, 2

并据此提供:

a = my_func(first_only=True)

答案 1 :(得分:1)

您可以使用具有默认值的参数,只需将其添加到新版本执行中。

Pyfiddle

def my_func(new_version=False):    
    return (1, 2) if new_version else 1

a = my_func()                 # backwards compatible
print("should be 1", a)
a = my_func(new_version=True) # new version available
print("should be (1, 2)", a)