python第二阶段第四天 装饰器和匿名函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python第二阶段第四天 装饰器和匿名函数相关的知识,希望对你有一定的参考价值。

装饰器

#######装饰器

装饰器:修饰别人的工具,修饰添加功能,工具指的是函数
装饰器本身可以是任何可调用对象,被装饰的对象也可以是任意可调用对象

为什么要用装饰器:
开放封闭原则:对修改是封闭的,对扩展是开放的
装饰器就是为了在不修改被装饰对象的源代码以及调用方式的前提下,为期添加新功能

总结来说就是 在不改变 函数主体源码的情况下 增加或者修改功能

@zhonglei 下面的 函数 就 相当于给 zhonglei函数 传参
@zhonglei() 等于二级装饰器 zhonglei() 中的括号 在上面有定义

import time
def zhonglei(A=‘YES‘):
    def timmer(fuc):
        def wapper(*args,**kwargs):
            if A == ‘NO‘:
                start=time.time()
                res=fuc(*args,**kwargs)
                stop=time.time()
                print(‘用时‘,(stop-start))
            else :
                res = fuc(*args, **kwargs)
                # print  (res)
                return res
        return wapper
    return timmer

@zhonglei()
def foo(a):
    time.sleep(1)
    print ("这里是原版需求")
    return a

JG=foo(‘la‘)

匿名函数

lambda

匿名函数
f=lambda x :x*2
JG=f(2)
print (JG)


但是这样违背了 匿名函数的初衷
所以 lambda x :x*2 有独特的用处
#备注: 第一个x 相当于 函数 括号中的穿值,冒号后面相当于return

以上是关于python第二阶段第四天 装饰器和匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

Python初探第二篇-装饰器和迭代器,生成器

Python基础-第四天

Python 基础第十四天(内置函数和匿名函数)

python第四天装饰器+迭代器+生成器

兄弟连学Python 装饰器和抽象类

python函数下篇装饰器和闭包,外加作用域