Python的'函數指針'的使用


其實Python是不存在指針這一個說法的,更不用說是函數指針了,但是也有相應的處理方式。

我這里使用這一個函數指針,其實也是為了代碼的簡潔以及擴展性,也就是說還是可以用其他的方式來實現其所需要實現的功能的。

遇到的情況是:
有一個Status狀態,當其為1的時候,需要執行函數A, 為2的時候需要執行函數B....如果可取的值很多的時候會比較麻煩。

常用的解決方法就是直接if...elif..elif....使用若干個這樣的條件語句進行處理(因為Python也沒有switch語句.....)

而遇到這種情況,'函數指針'就能夠發揮很重要的作用了,可以直接使用一個Map,key就是各種條件取值,value就是對應所需要執行的函數,所以就可以直接通過key進行函數的訪問執行了,避免了許多if和else的操作了......

 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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM