いくつかの属性を持つクラスがあるとします。同じ方法でいくつかの選択を変更したい。ただし、属性をリストに入れることができないため、これはかなり面倒です。
例えば:
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 倍する関数を作成することです。これは不可能なので、属性ごとに関数を使用する必要があります
ここでは、3 つの属性しかなく、それぞれを変更するために 3 つの関数が必要です。より多くの属性を持つクラスの場合、これはすぐに非現実的になります。これが可能であればいいですね:
def BOBmodify(instance,attribute_list):
for attribute in attribute_list:
instance.attribute *= 2
そして、する
BOBmodify(bobinstance, [lenname, lenshape])
私の知る限り、属性をリストに入れることはできないため、これは不可能です。では、関数に複数の異なる属性に対して同じことをさせたい場合、この状況をどのように処理すればよいでしょうか? スタックオーバーフローとグーグルでこれを検索しましたが、関連するものは何もありませんでした。助けてください。ありがとう!