如何调用具有多返回值的Python函数的指定返回值?
正确获取函数指定返回值的方法
问题分析
func.a()的调用方式完全错误:func是函数对象,a是函数内部的局部变量,并非函数的属性,因此会抛出AttributeError。- 你的函数逻辑存在误区:
a = print("text 1")中,print()函数的返回值是None,执行该行时会直接打印"text 1",随后把None赋值给a;同理b的值也是None,这和你想要获取"text 1"作为返回值的需求不符。
修正后的函数与调用方式
如果希望函数返回"text 1"和"text 2"作为可获取的返回值,而非直接打印,先调整函数:
def func(): a = "text 1" b = "text 2" return a, b
方式1:解包赋值(忽略第二个返回值)
result_a, _ = func() print(result_a) # 输出:text 1
方式2:通过索引获取元组第一个元素
result_a = func()[0] print(result_a) # 输出:text 1
若需保留函数内打印逻辑
如果确实需要函数内部执行打印,但只想获取并输出a对应的内容,可改为返回要打印的字符串,由外部控制打印:
def func(): a = "text 1" b = "text 2" # 若不需要内部打印,可删除以下两行 print(a) print(b) return a, b # 仅打印返回值a print(func()[0])
内容的提问来源于stack exchange,提问作者aesh
相关产品推荐
相关产品推荐

