如果我想从Python中的函数返回更多的那个变量,我一直在做以下事情:
def foo():
firstName = 'Bob'
lastName = 'Jones'
return [firstName, lastName]
Run Code Online (Sandbox Code Playgroud)
然后,如果我只想找到第一个名字,我会这样做
[firstName, dummy] = foo()
Run Code Online (Sandbox Code Playgroud)
但是,说我最初有这个功能
def fooInitial():
firstName = 'Bob'
return firstName
Run Code Online (Sandbox Code Playgroud)
我从我的代码的很多部分调用了这个,如果我想以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]
Run Code Online (Sandbox Code Playgroud)
请注意,您也可以返回元组而不是列表; 元组只需要逗号来定义,因此语法更轻(不需要方括号).解压缩返回的值时可以执行相同的操作:
first_name, last_name = barInitial()
Run Code Online (Sandbox Code Playgroud)