装饰器

Posted zhengyiqun1992

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器相关的知识,希望对你有一定的参考价值。

装饰器 = 高阶函数+闭包+函数嵌套
高阶函数定义:
函数接收的参数是函数名,或者函数的返回值是一个函数名
函数嵌套:
一个函数内,在重新定义一个函数
闭包:
其实就是作用域的另外一种名词,当前函数调用变量时,本地没有就找
上级。上级函数包含下级函数

def wapper(func):
    def inner(x,y):
        print(x+y)
        func(x,y)
    return inner


@wapper                  
def foo(x,y):
    print(x-y)

1,将foo内存地址传递到wapper(foo),func接收foo内存地址

2.返回inner内存地址,foo接收   foo = inner

3.执行foo(3,2),就是执行inner(3,2),inner里面的func其实值接收的最开始传递进来的foo的内存地址

 

 

装饰器加参数

import time

def timmer(func):
    def con(*args, **kwargs):
        start_time = time.time()
        res = func(*args, **kwargs)
        stop_time = time.time()
        print(函数运行时间是:%s % (stop_time - start_time))
        return res
    return con
@timmer
def test(name, age,sex,money):
    time.sleep(3)
    print(函数运行完毕)
    print(fname是{name},年纪是{age},性别是{sex},存款是{money})
    return 这是test返回值


res = test(zheng, age=18, sex=)

print(res)

 








以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象学习之八,装饰器

thymeleaf 片段渲染后重新加载 javascript

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码