python3学习之装饰器

在代码运行期间动态的增长功能,而不改变原代码的功能的方式称之为装饰器。函数

装饰器函数符合高阶函数,由于它传入的参数和返回值都是函数,它也符合嵌套函数。spa

代码示例:code

def log(func):
     def warpper(*args,**kw):
           print('hello'return func()
     return warpper
@log
def func():
       print( 'world')
func()

执行@log--->log函数--->返回一个函数warpper--->调用func函数(实际执行的是warpper函数)--->调用原始函数funcblog

 

1.执行装饰器函数的时候,被装饰函数看成参数传递给装饰器函数
2.装饰器函数的返回值会从新赋值给装饰器函数的内部函数,此时装饰器函数的参数指向由原先的被装饰函数变为装饰器函数的内部函数。
3.调用被装饰函数的时候,执行的是装饰器函数的内部函数的函数体class

相关文章
相关标签/搜索