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

使用类时如何让查询员工姓名的函数返回所有结果?

解决方法

问题出在你每次循环都重新赋值sent_person,最后只返回了最后一次循环创建的对象,自然只能拿到最后一条记录。要返回所有姓名,你需要把每个循环生成的name_data实例都收集起来,最后返回这个集合。

修改后的函数代码如下:

def getNames (conn):
    cursor = conn.cursor()
    query = """SELECT NAME FROM PERSON"""
    cursor.execute(query)
    row = cursor.fetchone()
    # 初始化空列表存储所有姓名实例
    person_list = []
    while row: 
        sent_person = name_data()
        sent_person.name = row[0]
        # 将当前实例加入列表
        person_list.append(sent_person)
        row = cursor.fetchone()
    
    # 返回整个列表而非单个对象
    return person_list

关键改动说明

  • 新增person_list列表,用来存储每条记录对应的name_data实例
  • 每次创建完sent_person后,用append()把它添加到列表中
  • 最终返回整个列表,而不是单个sent_person对象

调用修改后的函数后,你会得到包含所有姓名的name_data对象列表,遍历列表就能获取Maria、John、Sam这些姓名值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:50:28