标签:python 修饰器
修饰器是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器语法简单,代码可读性高。因此,装饰器在Python项目中有广泛的应用。
修饰器其实就是把需要执行的函数传递到修饰器中,然后修饰器执行相应的处理后,运行该函数切返回结果
#!/usr/bin/python #--*encoding=utf8--* import os def hehe(w=‘‘): #这个只是为了能给修饰器传入参数,可不要 def xiushiqi(fun): #这个是修饰器的顶部,传入的fun其实就是函数ljq def test(*args): #第二层,*args代表ljq的变量x,y,z os.chdir(‘/var/tmp‘) print w,os.getcwd(),fun(*args) #fun(*args)其实就是在运行ljq(2,9,29)这个 return test #返回结果 return xiushiqi @hehe(‘hello‘) #在函数定义前使用修饰器,这里还加入了参数 def ljq(x,y,z): return x*y+z ljq(2,9,29) [root@test-A opt]# python c.py hello /var/tmp 47 [root@test-A opt]#
#########################运行过程:
ljq(2,9,29)调用了函数ljq,因为函数ljq有修饰器hehe,所以便让修饰器处理这个ljq(2,9,29)函数。
修饰器接收到这个函数后,把hello赋值给变量w,ljq()这个函数赋值给fun,函数的参数2,9,29赋值给*args。然后修饰器执行相应动作并返回结果。
更多详细内容请参考:
http://www.cnblogs.com/vamei/archive/2013/02/16/2820212.html
本文出自 “choice me” 博客,请务必保留此出处http://kekeung.blog.51cto.com/2339469/1582976
标签:python 修饰器
原文地址:http://kekeung.blog.51cto.com/2339469/1582976