假设我有一个具有多个属性的类。我想以同样的方式修改一些选择。但是,由于我不能将属性放在列表中,所以这相当乏味。
例如:
class BOB:
def __init__(self,name,color,shape):
self.lenname = len(name)
self.lencolor = len(color)
self.lenshape = len(shape)
def BOBmodify_lenname(instance):
instance.lenname *= 2
def BOBmodify_lencolor(instance):
instance.lencolor *= 2
def BOBmodify_lenshape(instance):
instance.lenshape *= 2
我的目标是以属性列表的形式输入各种类型的输入,例如 [lenshape, lencolor],然后有一个函数可以遍历列表并将它们乘以 2。由于这是不可能的,我不得不为每个属性求助于一个函数
在这里,我只有三个属性,我需要三个函数来修改每个。对于具有更多属性的类,这很快变得不切实际。如果这是可能的,那就太好了:
def BOBmodify(instance,attribute_list):
for attribute in attribute_list:
instance.attribute *= 2
然后做
BOBmodify(bobinstance, [lenname, lenshape])
据我所知,您不能将属性放在列表中,所以这是不可能的。那么我应该如何处理这种情况,我希望一个函数对几个不同的属性做同样的事情呢?虽然我已经在堆栈溢出和谷歌上搜索过这个,但没有任何相关信息出现。请帮忙。谢谢!