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()
相关文章
相关标签/搜索