Python的'函數指針'的使用

其實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()
相關文章
相關標籤/搜索