Вопрос

i have a python class that is defined using __slots__, like so:

class TheClass:
   __slots__=['foo','bar']

I would like to sets it values by name, like so

the_object=TheClass()
for x in ['foo','bar']: 
  the_object[x]=x+x

is that possible?

Это было полезно?

Решение

No difference with general case, you can use getattr and setattr:

the_object=TheClass()
for attname in ['foo','bar']: 
    setattr(the_object, attname, attname+attname)

You'll get:

>>> the_object.foo
'foofoo'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top