Установка полей по имени в классе с __slots__
У меня есть класс Python, который определяется с помощью __slots__
, вот так:
class TheClass:
__slots__=['foo','bar']
Я хотел бы установить значения по имени, например, так
the_object=TheClass()
for x in ['foo','bar']:
the_object[x]=x+x
это возможно?
1 ответ
Решение
Нет разницы с общим случаем, вы можете использовать getattr
а также setattr
:
the_object=TheClass()
for attname in ['foo','bar']:
setattr(the_object, attname, attname+attname)
Ты получишь:
>>> the_object.foo
'foofoo'