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

Raj*_*eev 1 python django

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

如果我说它tg.var应该被解释为tg.field123.怎么做到这一点?

for tg in data_var:
     for col in range(content.no_of_cols):
        var = "field" + str(col)
        tg.var 
Run Code Online (Sandbox Code Playgroud)

Ros*_*nko 6

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

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

gettatr在Python doc中解释.

  • `var`不是''var'`? (2认同)