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

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

class Test:
   def __init__(self):
       self.attr1 = 1
       self.attr2 = 2

t = Test()
x = "attr1"

Ответ 1

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

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

В этом случае

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

Ответ 2

Примечание: этот ответ очень устарел. Это относится к Python 2 с использованием new модуля, который устарел в 2008 году.

В 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