Python函数返回多个函数调用报错:tuple对象不可调用,求正确打印方法
问题分析与解决
错误原因
outside_func返回的是两个内部函数组成的元组,你把这个元组赋值给了my_func,之后尝试调用my_func(),但元组不是可调用对象,因此触发TypeError。
解决方法
方法1:分别接收两个内部函数
直接将返回的两个函数分别赋值给变量,再单独调用:
def outside_func(name = 'pink'): def inside_func(): return "This is inside function" def inside_func2(): return "This is inside function 2 " return inside_func,inside_func2 # 分别接收两个内部函数 func1, func2 = outside_func() # 调用并打印第一个函数的返回值 print(func1()) # 调用并打印第二个函数的返回值 print(func2())
方法2:通过元组索引调用指定函数
如果不需要同时接收两个函数,可直接通过元组索引获取目标函数后调用:
def outside_func(name = 'pink'): def inside_func(): return "This is inside function" def inside_func2(): return "This is inside function 2 " return inside_func,inside_func2 my_func = outside_func() # 调用第一个内部函数(索引为0) print(my_func[0]()) # 或者调用第二个内部函数(索引为1) print(my_func[1]())
内容的提问来源于stack exchange,提问作者Prathamesh Kadam
相关产品推荐
相关产品推荐

