You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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()

关键修改说明:

  1. 解决Add_Func.py的未定义错误:

    • 在Add_Func.py顶部导入了os和datetime模块,这样datetime.now()和os.getcwd()就能正常调用了。
    • 把calc函数改成接受row_data参数,因为ROW是在main.py里从数据库查出来的,不能直接在Add_Func.py中引用,通过参数传递更符合模块化的设计思路。
  2. 正确调用calc函数:

    • 在main.py拿到ROW数据后,直接调用calc(ROW),把查询结果传给calc函数处理。
    • 额外加了关闭数据库连接的代码,如果你的DB_Connectivity模块没有自动处理连接关闭,这一步能避免资源浪费。

小提示:

如果你的数据表查询结果ROW的结构不是两列数值,记得调整calc函数里a, b = j这部分代码,确保和你的实际数据结构匹配哦。

内容的提问来源于stack exchange,提问作者Sathish Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:38:20