码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器

时间:2018-12-21 01:08:36      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:name   %s   内存   函数嵌套   ret   app   foo   art   stop   

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

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)

 

装饰器

标签:name   %s   内存   函数嵌套   ret   app   foo   art   stop   

原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10153396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!