如果我想从 Python 中的函数返回多个变量,我一直在执行以下操作:
def foo():
firstName = 'Bob'
lastName = 'Jones'
return [firstName, lastName]
如果我只想找到名字,我会这样做
[firstName, dummy] = foo()
但是,假设我最初有这个功能
def fooInitial():
firstName = 'Bob'
return firstName
我从我的代码的许多部分调用了它,如果我想按照我一直在做的方式将 lastName
添加为另一个输出,我将不得不更改我代码中的其他地方调用它。
有没有办法做一些类似于 Matlab 的事情,调用 a = foo()
给我名字(不是列表中的第一个和最后一个)和 [a,b ]=foo()
给我第一个和最后一个?
最佳答案
不,没有。您最好要么更改所有调用 fooInitial()
的代码,要么添加一个不同的方法来返回两个参数并具有 fooInitial()
使用该方法:
def barInitial():
first_name, last_name = 'Bob', 'Jones'
return first_name, last_name
def fooInitial():
return barInitial()[0]
请注意,您也可以只返回元组而不是列表;元组只需要一个逗号来定义,因此语法更简洁(不需要方括号)。您可以在解包返回值时执行相同的操作:
first_name, last_name = barInitial()
关于Python 函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144722/