Python学习之路:装饰器前奏

Posted Py小白

tags:

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

装饰器:

定义:本质是函数,功能:(装饰其他函数)就是为其他函数添加附加功能;

原则:1、不能修改被装饰函数的源代码

           2、不能修改被装饰的函数的调用方式

 

实现装饰器知识储备:

1、函数即“变量”

2、高阶函数

3、嵌套函数

 

高阶函数+嵌套函数 =》装饰器

import time

def timer(func):
    def warper(*args,**kwargs):
        start_time =time.time()
        func()
        stop_time=time.time()
        print(‘the func run time is %s‘ %(stop_time-start_time))
    return warper

@timer
def test1():
    time.sleep(3)
    print(‘in the test1‘)

test1()

 

匿名函数:不需要起名字(内存回收)

calc = lambda x:x*3
print(calc(3))

 

#函数即“变量”

# def foo():
#     print(‘in the foo‘)
#     bar()
# foo()

#----------------------
def bar():
    print(‘in the bar‘)

def foo():
    print(‘in the foo‘)
    bar()
foo()



#-----------------------------------------------
def foo():
    print(‘in the foo‘)
    bar()
def bar():
    print(‘in the bar‘)
foo()

 

以上是关于Python学习之路:装饰器前奏的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之路6 - 装饰器

Python学习之路-装饰器&生成器&正则表达式

《Python学习之路 -- Python基础之装饰器》

Python学习之路:装饰器实现终极版

装饰器前奏

Python学习之路:装饰器实现