0
考慮到下面的代碼,你如何正確地調度類方法:派遣一個類的方法
>>> 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']
是一個不受約束的方法。 這對簡單的函數很簡單,並且是選擇/案例替換的常見習慣用法,用類方法做到這一點的正確方法是什麼?
謝謝,我喜歡後面的方法更高效的內存,特別是如果你有大量的實例。恥辱這是如此不可讀。 – AChampion