有没有一种方法可以定义一个函数,该函数根据用户期望的输出量知道要返回多少变量?
让我来说明这个想法。假设以下功能:
def function():
a = 1
b = 2
c = 3
return a, b, c
然后,我希望我的函数表现如下:
>>> x = function()
>>> x
1
>>> x, y = function()
>>> x
1
>>> y
2
>>> x, y, z = function()
>>> x
1
>>> y
2
>>> z
3
python 中是否有函数或概念可以帮助我实现这一目标?也许装饰器?
欢迎任何想法!
PD:我的Python水平还是很基础的。
编辑:
我目前正在从 IDL 转向 Python。所以我错过了 IDL 中的一个不错的功能,您实际上可以选择返回任意数量的变量,方法如下:
FUNCTION function, a=a, b=b, c=c
a=1
b=2
c=3
RETURN, a
然后你可以简单地问你想要得到什么
IDL> x=function()
IDL> print, x
1
IDL> x=function(y=b)
IDL> print, x
1
IDL> print, y
2
IDL> x=function(y=b, z=c)
IDL> print, x
1
IDL> print, y
2
IDL> print, c
3
最佳答案
除了返回不同的值,你可以用不同的方式调用它:
x, *_ = function()
x, y, *_ = function()
x, y, z, *_ = function() # *_ is optional here if it only returns 3 things
这样做会将所有未使用的返回值分配给 _
变量,因此如果您希望它们尽早获得 gc,则必须 del _
。
关于python - 控制函数中返回变量的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49820567/