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

如何通过循环将Python对象的字符串属性名转为属性对象并生成列表

Python通过属性名字符串生成对象属性列表

直接用Python内置的getattr()函数就能解决这个问题——它可以根据字符串形式的属性名,获取对应的对象属性。

实现步骤及代码示例

  1. 先准备好属性名的字符串列表
  2. 循环遍历每个属性名,用getattr()获取属性对象并添加到列表
# 假设my_obj是已存在的目标对象
attr_name_strings = ["attr1", "attr2", "attr3"]
attr_list = []

# 循环逐个添加属性对象
for attr_name in attr_name_strings:
    # 获取对应属性,第二个参数是属性名字符串
    attr_obj = getattr(my_obj, attr_name)
    attr_list.append(attr_obj)

# 更简洁的列表推导式写法
attr_list = [getattr(my_obj, name) for name in attr_name_strings]

可选:处理属性不存在的情况

如果担心某个属性名不存在会报错,可以给getattr()加第三个参数设置默认值,比如:

# 属性不存在时用None填充,避免抛出AttributeError
attr_list = [getattr(my_obj, name, None) for name in attr_name_strings]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:02:27