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

Python中如何将函数参数作为类对象的属性进行查询调用?

报错原因

你代码中的Users.request写法是直接尝试读取Users类中名为request的固定属性,和你传入的request函数参数完全没有关联,所以会触发属性不存在的报错,同时IDE也会提示request参数未被使用。

实现方法

你的需求完全可以实现,用Python内置的getattr()函数动态读取类属性即可,该函数支持传入字符串形式的属性名,返回对应的类/对象属性:

def users(request, filters):
    # 动态获取Users类的对应字段属性
    target_field = getattr(Users, request)
    result = session.query(target_field).filter(filters).all()
    return result

额外优化建议

为了避免传入非法字段名触发异常,建议增加字段合法性校验:

def users(request, filters):
    # 先校验字段是否存在
    if not hasattr(Users, request):
        raise ValueError(f"非法查询字段:{request}")
    target_field = getattr(Users, request)
    result = session.query(target_field).filter(filters).all()
    return result

如果是SQLAlchemy场景,也可以通过表结构直接取字段,写法如下:

target_field = Users.__table__.c.get(request)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:15:07