Python 在具有_插槽的类上按名称设置字段__

Python 在具有_插槽的类上按名称设置字段__,python,slots,Python,Slots,我有一个python类,它是使用定义的 class TheClass: __slots__=['foo','bar'] 我想按名称设置它的值,如下所示 the_object=TheClass() for x in ['foo','bar']: the_object[x]=x+x 这可能吗?与一般情况没有区别,您可以使用和: 您将获得: >>> the_object.foo 'foofoo' 与一般情况没有区别,您可以使用和: 您将获得: >>>

我有一个python类,它是使用
定义的

class TheClass:
   __slots__=['foo','bar']
我想按名称设置它的值,如下所示

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

这可能吗?

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

您将获得:

>>> the_object.foo
'foofoo'

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

您将获得:

>>> the_object.foo
'foofoo'

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

您将获得:

>>> the_object.foo
'foofoo'

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

您将获得:

>>> the_object.foo
'foofoo'

出于好奇,你为什么要使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我认为它有助于理解代码您可以使用
setattr()
,或者如果您想不太清楚,可以使用插槽描述符:
类。但你没有,不是真的。@yigalirani:不要。只有在需要节省内存时才使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
;e、 g.当你有大量的类
实例时。@yigalarani:Python是动态类型的,它的许多最好的特性都是围绕这个事实构建的。试图强迫它是另一种情况,这意味着你给自己带来了两个世界中最糟糕的结果。出于好奇,你为什么要使用
\uuuuuuu slots\uuuuuuuuuu
?我喜欢静态键入的想法-我想提前知道我的类的数据成员是什么。我认为它有助于理解代码您可以使用
setattr()
,或者如果您想不太清楚,可以使用插槽描述符:
类。但你没有,不是真的。@yigalirani:不要。只有在需要节省内存时才使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
;e、 g.当你有大量的类
实例时。@yigalarani:Python是动态类型的,它的许多最好的特性都是围绕这个事实构建的。试图强迫它是另一种情况,这意味着你给自己带来了两个世界中最糟糕的结果。出于好奇,你为什么要使用
\uuuuuuu slots\uuuuuuuuuu
?我喜欢静态键入的想法-我想提前知道我的类的数据成员是什么。我认为它有助于理解代码您可以使用
setattr()
,或者如果您想不太清楚,可以使用插槽描述符:
类。但你没有,不是真的。@yigalirani:不要。只有在需要节省内存时才使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
;e、 g.当你有大量的类
实例时。@yigalarani:Python是动态类型的,它的许多最好的特性都是围绕这个事实构建的。试图强迫它是另一种情况,这意味着你给自己带来了两个世界中最糟糕的结果。出于好奇,你为什么要使用
\uuuuuuu slots\uuuuuuuuuu
?我喜欢静态键入的想法-我想提前知道我的类的数据成员是什么。我认为它有助于理解代码您可以使用
setattr()
,或者如果您想不太清楚,可以使用插槽描述符:
类。但你没有,不是真的。@yigalirani:不要。只有在需要节省内存时才使用
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
;e、 g.当你有大量的类
实例时。@yigalarani:Python是动态类型的,它的许多最好的特性都是围绕这个事实构建的。试图强迫它成为另一种情况,意味着你给了自己两个世界中最糟糕的。