如何在main.py中调用calc()函数并修复Add_Func.py未定义对象问题
解决方案
我来帮你搞定这两个问题——Add_Func.py里的未定义对象报错,以及在main.py中正确调用calc函数。下面是修改后的完整代码和详细说明:
修改后的Add_Func.py
import os from datetime import datetime def calc(row_data): # 计算函数主体 NOW = datetime.now() DR = os.getcwd() for j in row_data: # 这里执行你的两变量相加操作,示例假设每行是包含a、b的元组 # 请根据你的数据表结构调整这部分逻辑 a, b = j result = a + b print(f"行数据计算结果:{a} + {b} = {result}") # 计算函数主体结束
修改后的main.py
import os from datetime import datetime import DB_Connectivity as DB from Add_Func import calc # 导入calc函数 CONN = DB.connect() CUR = CONN.cursor() TB = input('Enter the table name:') SQL = """select * from %s""" % (TB) CUR.execute(SQL) ROW = CUR.fetchall() # 调用calc函数,传入从数据库获取的行数据 calc(ROW) # 推荐:用完数据库后关闭连接,避免资源泄漏 CUR.close() CONN.close()
关键修改说明:
解决Add_Func.py的未定义错误:
- 在Add_Func.py顶部导入了
os和datetime模块,这样datetime.now()和os.getcwd()就能正常调用了。 - 把
calc函数改成接受row_data参数,因为ROW是在main.py里从数据库查出来的,不能直接在Add_Func.py中引用,通过参数传递更符合模块化的设计思路。
- 在Add_Func.py顶部导入了
正确调用calc函数:
- 在main.py拿到
ROW数据后,直接调用calc(ROW),把查询结果传给calc函数处理。 - 额外加了关闭数据库连接的代码,如果你的
DB_Connectivity模块没有自动处理连接关闭,这一步能避免资源浪费。
- 在main.py拿到
小提示:
如果你的数据表查询结果ROW的结构不是两列数值,记得调整calc函数里a, b = j这部分代码,确保和你的实际数据结构匹配哦。
内容的提问来源于stack exchange,提问作者Sathish Jay
相关产品推荐
相关产品推荐

