首页 > 代码库 > 修饰器浅解

修饰器浅解



修饰器是一种高级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

修饰器浅解