如何仅调用一次计算密集型函数1,将返回元组值分配给函数2变量
解决方案:一次调用获取多返回值
你的核心问题是重复调用计算密集型函数导致效率低下,Python的元组解包特性可以完美解决这个问题——只需要调用一次my_func_1,就能把它返回的多个值分别赋值给不同变量。
修正后的代码示例
首先先修正你代码里的导入语法错误(import my_func_1 *是非法写法),然后用解包实现一次调用:
同一文件内的情况
def my_func_1(): a = 2 b = 3 r1 = a + b r2 = a * b return r1, r2 def my_func_2(): # 仅调用一次my_func_1,直接将返回的两个值解包赋值 result_1, result_2 = my_func_1() # 后续可以直接使用result_1和result_2 print(f"求和结果:{result_1},乘积结果:{result_2}")
分文件导入的情况
如果my_func_1在单独的my_func_1.py文件中,正确导入后再使用解包:
from my_func_1 import my_func_1 def my_func_2(): result_1, result_2 = my_func_1() # 业务逻辑处理
原理说明
Python中函数返回多个值时,本质是返回了一个元组(你可以打印my_func_1()的结果,会看到类似(5, 6)的输出)。元组解包是Python原生支持的语法,能直接将元组中的每个元素对应赋值给左侧的变量,既避免了重复调用函数,代码也更简洁易读。
如果后续只需要部分返回值,还可以用下划线_忽略不需要的变量,比如:
# 只获取求和结果,忽略乘积 result_1, _ = my_func_1()
内容的提问来源于stack exchange,提问作者Sayantan4796
相关产品推荐
相关产品推荐

