假设我有一个功能:
def my_func():
return 1,2
我想要的:如果我这样称呼函数:
a = my_func()
我希望它返回仅第一个输出参数,即1
;
如果我致电a,b = my_func()
,则会返回 - a=1
和b=2
。
此任务是关于向后兼容性的:当我仅使用a = my_func()
时,我已经有很多脚本,现在我想添加额外的功能。但现在a
实际上是一个元组,由两个值组成:(1,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)
您可以使用具有默认值的参数,只需将其添加到新版本执行中。
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)