鉴于以下代码,您如何正确调度类方法:
>>> class A:
... def a(self):
... pass
... def b(self):
... pass
... c = a
... dispatch_map = { 'a' : a, 'b' : b }
... def dispatch(self, arg):
... self.dispatch_map[arg]() # Fail: unbound method!
>>> A().c
<bound method A.a of <__main__.A object at 0x100550210>>
>>> A().dispatch_map['a']
<function a at 0x10054acf8>
为什么是c
绑定方法,而是dispatch_map['a']
未绑定方法。这对于普通函数很简单,并且是选择/案例替换的常见习惯用法,使用类方法执行此操作的正确方法是什么?