1
私は以下の単純な例が恥ずかしいほど醜いことを知っています...それで、なぜ私はそれを世界と共有するために来たのですか?Python:関数のパラメータとして指定された別のクラスのメソッドを呼び出す
cls
からクラスメソッドを呼び出し、特定のメソッドをcallmethod
に指定したいと考えています。
class cls(object):
def __init__(self, var1):
self.var1 = var1
def method1(self):
return self.var1 ** 2
def method2(self):
return self.var1 ** 3
def callmethod(method, var1):
methods = {'method1' : cls(var1).method1(),
'method2' : cls(var1).method2()
}
return methods[method]
callmethod('method1', 2)
Out[56]: 4
現物に各メソッドの文字列形式をリンク(おそらく大と面倒な)辞書を作成することなく、このことについて移動する方法はありますか?あなたが探しているもの
のためのシンタックスシュガーとして
a.b
と考えることができ、私はちょうどその辞書の必要性を否定するでしょうgetattr' '使用することを意味実際の例と抽象的な例がまったくどのようにつながっているかわかりません。 –[operator.methodcaller](https://docs.python.org/3/library/operator.html#operator.methodcaller) – wwii