我不能nargout
在 MATLAB 中说话,因为我不知道它,我无法想象它应该如何正确使用。但是,您可能希望将视图更改为 Python 函数(或方法)的真正作用)。
实际上,Python 总是只返回一个值。或者它是 None,或者它是某个特定类型的单个值,或者它是该tuple
类型的单个对象。
如果没有return
命令,None
则函数体结束则函数返回。这与您return
在正文末尾或正文末尾不带参数显式编写相同return None
。
如果使用return None
(None
可以存储在变量中)或return
不使用参数,None
则返回给调用者。
如果你return single
,single
对象将返回给调用者。
如果你return v1, v2, v3
,你实际上返回一个元组(v1, v2, v3)
。它只是一个语法糖,你不需要写括号。
在result1, result2, result3 = f()
这种情况下,只是另一种语法糖。f()
返回元组及其元素被自动提取到给定的变量。你实际上是这样做的:
result1, result2, result3 = (v1, v2, v3)
或者
t = f() # where t is the (v1, v2, v3)
result1, result2, result3 = t
实际上,Python 不允许像在其他语言中那样定义输出参数。你可以认为你正在传递参数对象的地址,如果传递的对象允许修改,你可以修改它。但是,例如,您永远无法为具有初始None
值的传递参数获得新结果。您不能通过函数的输出参数分配 Python 变量——在 Python 中没有类似的机制。
从函数内部返回新创建的值(对象)的唯一自然而直接的方法是使用return
命令。但是,Python 函数不会限制您可以返回多少个参数。(好吧,如果它是一个元组,则总是一个可以在以后分解为元素的元素。)
如果您想在调用者代码中测试实际返回的内容,您可以编写自己的函数,在返回以下值的情况下执行一些特殊操作:None
, single
,一定长度的元组 (len(t)
可用于获取元素的数量在返回的元组中t
)。您的函数还可以测试single
每个元组元素的类型或类型并相应地工作。