Как получить доступ к объектному атрибуту заданная строка, соответствующая имени этого атрибута


как вы устанавливаете / получаете значения атрибутов t дано x.

class test():
   attr1 = int
   attr2 = int

t = test()
x = "attr1"
2 77

2 ответа:

есть встроенные функции под названием getattr и setattr

getattr(object, attrname)
setattr(object, attrname, value)

в этом случае

x = getattr(t, "attr1")
setattr(t, 'attr1', 21)

есть python встроенный в функции setattr и getattr. Который может использоваться для установки и получения атрибута класса.

краткий пример:

>>> from new import  classobj

>>> obj = classobj('Test', (object,), {'attr1': int, 'attr2': int}) # Just created a class

>>> setattr(obj, 'attr1', 10)

>>> setattr(obj, 'attr2', 20)

>>> getattr(obj, 'attr1')
10

>>> getattr(obj, 'attr2')
20