其實Python是不存在指針這一個說法的,更不用說是函數指針了,可是也有相應的處理方式。函數
我這裏使用這一個函數指針,其實也是爲了代碼的簡潔以及擴展性,也就是說仍是能夠用其餘的方式來實現其所須要實現的功能的。spa
遇到的狀況是:
有一個Status狀態,當其爲1的時候,須要執行函數A, 爲2的時候須要執行函數B....若是可取的值不少的時候會比較麻煩。指針
經常使用的解決方法就是直接if...elif..elif....使用若干個這樣的條件語句進行處理(由於Python也沒有switch語句.....)code
而遇到這種狀況,'函數指針'就可以發揮很重要的做用了,能夠直接使用一個Map,key就是各類條件取值,value就是對應所須要執行的函數,因此就能夠直接經過key進行函數的訪問執行了,避免了許多if和else的操做了......blog
1 #coding=utf-8
2
3 class Interface(object): 4 def __init__(self): 5 self.valueFunctions = { 6 'color': self.color_values, 7 'positions': self.positions_values, 8 } 9
10 def color_values(self): 11 print "color"
12
13 def positions_values(self): 14 print "positions"
15
16 def test(self): 17 self.valueFunctions['color']() 18 self.valueFunctions['positions']() 19
20 if __name__ == "__main__": 21 go = Interface() 22 go.test()