其实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()
Python的'函数指针'的使用
时间: 2024-10-16 09:49:41