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

如何从列表中调用Python类实例并按名称选取类属性?

通过属性名称字符串获取Python类的属性值

嘿,这事儿超简单!Python内置的getattr()函数就是专门干这个的——它能接收对象和属性名称字符串,直接返回对应的属性值。

先看你给出的初始代码,要实现用list[0]获取x.one,直接这么写就行:

class example(object):
    def __init__(self):
        self.one = "1"
        self.two = "2"
x = example()
attr_list = ["one", "two"]  # 建议别用list当变量名,这是Python内置类型,容易冲突
# 获取x.one的值
result = getattr(x, attr_list[0])
print(result)  # 输出:1

这里特意提一句:尽量别用list作为变量名,它是Python的内置类型,这么做会覆盖掉原本的功能,后续容易出奇怪的问题。

再看你给出的可行示例,其实原理完全一致——在类的方法里用getattr(self, 字符串属性名),这里的self就是当前类的实例,和外面的x是同一个概念,所以能顺利拿到self.two的值。

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

# 如果属性不存在,返回预设的默认值
result = getattr(x, "three", "不存在这个属性")
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:28:00