美文网首页学习
python装饰器的实现

python装饰器的实现

作者: TimeSHU | 来源:发表于2018-05-06 23:07 被阅读1次

装饰器对函数进行修饰,添加一些功能

装饰器也是一个函数

但是需要满足一些特定需求才是一个真正的装饰器

1.不修改被装饰函数的源代码

2.不修改被装饰函数的调用方式装饰器=高阶函数+函数嵌套+闭包

满足以上所有条件,才是一个真正的装饰器

下述代码就是一个装饰器,给ti函数加上运行时间,并且没有修改ti函数的源代码,也没有修改ti函数的调用方式

import time

def  text():

    def  text1(func):

        start_time = time.time()#函数开始运行的时间

        func()#调用的就是ti函数

        stop_time = time.time()#函数结束时间

        print('函数的运行时间是%s' %(stop_time-start_time))

    return text1

@text    #此方法调用text装饰器

def  ti():

    time.sleep(3)#让程序延迟3秒执行

    print('函数运行完毕')

ti()#调用函数

@text  等同于 ti = text(ti) 如果不使用@text则需要用 ti = text(ti),这样每次调用装饰器都需要给ti函数重新赋值,过于麻烦,也不符合上述的不改变函数的调用方式,且只要在需要用到装饰器的时候值需要@text就可以解决

相关文章

  • 利用Python装饰器来组织Tensorflow代码的结构

    装饰器 定义Python装饰器 装饰器是一种设计模式, 可以使用OOP中的继承和组合实现, 而Python还直接从...

  • 设计模式03装饰者模式

    python对装饰器支持的非常好, 但是常见的python装饰器并不代表整个装饰者模式,它只是装饰者模式的一种实现...

  • Python 高级编程系列(二)

    Python 装饰器常见用法 装饰器与spring 中的AOP类似 通过装饰器可以实现面向切面的注入 一:缓存 ...

  • Python装饰器高级用法

    转载至:Python装饰器高级用法 在 Python 中, 装饰器 一般用来修饰函数,实现公共功能,达到代码复用的...

  • 通过模块功能实现单例模式

    一般说到python实现单例模式,都会想到各种装饰器的途径来构造 装饰器途径构造单例模式参考文档:python装饰...

  • 11.装饰器(注解)、深浅拷贝

    一、装饰器 1). 装饰器概述 装饰器:Python中的代理模式的实现。 对其他函数进行增强。 原则:不修改被修饰...

  • 9个Python 内置装饰器: 显著优化代码

    装饰器是应用“Python 之禅”哲学的最佳 Python 特性。装饰器可以帮助您编写更少、更简单的代码来实现复杂...

  • 理解Python装饰器

    理解Python装饰器 Python装饰器看起来类似Java中的注解,然鹅和注解并不相同,不过同样能够实现面向切面...

  • 装饰器模式

    介绍 在python装饰器学习 这篇文章中,介绍了python 中的装饰器,python内置了对装饰器的支持。面向...

  • lru_cache装饰器的作用

    python lru_cache装饰器的作用 ru_cache装饰器实现了备忘功能,能够优化函数执行速度,他把耗时...

网友评论

    本文标题:python装饰器的实现

    本文链接:https://www.haomeiwen.com/subject/ypyprftx.html