Python跨脚本传参调用:执行script_a.py时输出maximum函数结果
代码修正方案
现存问题
- 循环导入错误:
script_a.py开篇导入script_b.py的maximum函数时,script_b.py又反向执行import script_a,两个模块互相等待对方加载完成,直接触发运行异常 - 冗余逻辑错误:
script_b.py不需要主动读取script_a.py内的变量,作为被调用的工具模块只需要保留比较函数即可;原有代码中print(maximum)是直接打印函数对象的内存地址,并非函数执行结果 - 调用逻辑错误:
script_a.py中调用maximum时,传入的是未经过交换的原始参数,且没有接收、打印函数返回值,运行时自然看不到正确的计算结果
修正后代码
script_b.py
移除所有循环导入和冗余的变量读取、打印逻辑,仅保留核心比较功能:
def maximum(a, b): if a >= b: return a else: return b
script_a.py
接收参数交换后的返回值,将其传入maximum函数后打印计算结果:
from script_b import maximum input1 = 5 input2 = 6 def script_a(input1, input2): input1, input2 = input2, input1 return input1, input2 # 执行参数交换逻辑 x, y = script_a(input1, input2) print("参数交换结果:", x, y) # 调用maximum函数并打印结果 max_val = maximum(x, y) print("maximum计算结果:", max_val)
运行验证
在终端执行命令python script_a.py,即可得到预期输出:
参数交换结果: 6 5 maximum计算结果: 6
内容的提问来源于stack exchange,提问作者CoderMJ
相关产品推荐
相关产品推荐

