Skip to main content
 首页 » 编程设计

python之在 Python 中通过属性的字符串名称获取对象属性

2025年05月04日14haluo1

在下面的代码中,data_var 是我来自 Django 查询的对象,即 data_var = Datavar.objects.all()。我有数据库字段,如 field1、field2、field3 等。在下面的代码中,我试图将字段名称作为var 中的字符串,然后说 tg.var 但我得到一个错误,因为对象没有属性 'var':

如果我说 tg.var,它应该被解释为 tg.field1 或 2 或 3。如何实现?

for tg in data_var: 
     for col in range(content.no_of_cols): 
        var = "field" + str(col) 
        tg.var  

请您参考如下方法:

要使用字符串名称获取对象的属性,您应该使用 getattr 内置函数,这样会将您的代码转换为下一行:

for tg in data_var: 
     for col in range(content.no_of_cols): 
        var = "field" + str(col) 
        value = getattr(tg, var) 

gettatr在 Python 文档中有解释。