在Python中,函数是否知道请求了多少输出?例如,我是否可以使用通常返回一个输出的函数,但是如果请求了两个输出,它会进行额外的计算并返回它吗?
或者这不是标准的方法吗?在这种情况下,最好避免使用额外的函数参数来提供第二个输入.但我有兴趣学习标准的方法来做到这一点.
真实而简单的答案是:不.
Python函数/方法不知道请求了多少输出,因为在函数调用之后发生了返回元组的解包.
但是,最好的做法是使用下划线(_)作为占位符,用于在不需要时从函数返回的未使用的args,例如:
def f():
return 1, 2, 3
a, b, c = f() # if you want to use all
a, _, _ = f() # use only first element in the returned tuple, 'a'
_, b, _ = f() # use only 'b'
Run Code Online (Sandbox Code Playgroud)
例如,当使用下划线(_)时,pylint将禁止任何未使用的参数警告.
Python函数总是返回1个值.
在这种情况下:
def myfunc():
return
Run Code Online (Sandbox Code Playgroud)
该值为None.在这种情况下:
def myfunc():
return 1, 2, 3
Run Code Online (Sandbox Code Playgroud)
该值是元组(1,2,3).
所以这个功能没有什么可以知道的.
至于返回由参数控制的不同输出,我总是对此有所了解.这取决于实际的用例.对于其他人使用的公共API,最好提供两个具有不同返回类型的独立函数,这些函数调用确实接受参数的私有代码.
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |