Python では、次の構造を定期的に使用します。
x = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
y = x[v] if v in x.keys() else None
ここで、v は通常、辞書の値の 1 つです。y は、キーが存在する場合は辞書の値を取得し、そうでない場合は None を取得します。
これが望ましい構造なのか、それとも強化できるのか疑問に思っていましたか?
x[v] は上記の値にすることができますが、同様の構造を使用して v の値に応じて関数を呼び出します。
{'a': self.f1, 'b': self.f2, 'c': self.f3, 'd': self.f4}[v]()