在python中,函数是否可能根据调用方返回不同数量的变量?在
我是一个Matlab程序员,在这种语言中它被广泛使用,但我想知道python是否也有这个选项,它是否是一个很好的编程实践。在
Matlab示例:
minval = min([5,2,7,1,6]) % will only return the min value
minval, idx = min([5,2,7,1,6]) % will return the min value and the index
这里的min函数只是一个例子(我的函数与计算min值无关)。在
我想创建一个函数,在90%的情况下只使用第一个返回值(比如在min
中,有时您不关心索引,只需要值本身)。在
当然,每次我都可以用2个返回值强制调用,但是我认为如果您可以只使用一个返回值或根据您的需要使用2个返回值来调用它,则会更干净、更好。在
我看到了一些有趣的建议,关于传递一个带有默认值的标志来告诉函数预期有多少个输出,但是我正在寻找完全透明的东西。在
当然可以!只需准备一个empy列表并使用它来接收不同数量的值。看看我的例子:
没有标准的Python方法可以做到这一点;Python函数通常不知道调用它的上下文。在
我不想说这是不可能的,因为有很多方法可以返回堆栈跟踪、检查代码对象等等,谁知道呢,它可能在某种程度上是可能的,但在某种程度上却不是你想要实际使用的方式。在
在Python中,您可以传递一个带有默认值的选项,这样在正常情况下就不必传递它了:
或者你总是把两者都返回,而忽略其中一个:
^{pr2}$相关问题 更多 >
编程相关推荐