在具有__slots__的类上按名称设置字段

时间:2013-12-12 22:16:10

标签: python slots

我有一个使用__slots__定义的python类,如下所示:

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

我想按名称设置值,如此

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

可能吗?

1 个答案:

答案 0 :(得分:3)

与一般情况没有区别,您可以使用getattrsetattr

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

你会得到:

>>> the_object.foo
'foofoo'