Python高级--装饰器

简介: Python高级--装饰器

装饰器

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
它经常用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计
@在装饰器这里是作为Python语法里面的语法糖写法,用来做修饰

魔术方法 name 这是属于 python 中的内置类属性,就是它会天生就存
在与一个 python 程序中,代表对应程序名称,一般一段程序作为主线运行程序时其内置名称就是 main ,当自己作为模块被调用时就是自己的名字

def sleep(fun):
    def begin():
        fun()
        print("zss睡着了")
    return begin
@sleep
def eat():
    print("zss吃饭了")
eat()
zss吃饭了
zss睡着了

运行流程:当被装饰的函数被调用时,函数体会被作为参数传递为装饰器函数,函数体被改变为装饰器内层函数,如果需要传参,则需要在装饰器内层函数使用形参进行接收

装饰器类
需要重写__call__方法,该方法会被自动调用

class Sleep(object):
    def __init__(self):
        pass
    def __call__(self, fun):
        def sleep():
            fun()
            print("睡觉")
        return sleep

@Sleep()
def eat():
    print("吃饭")
eat()
相关文章
|
9天前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
197 101
|
16天前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
164 99
|
16天前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
144 98
|
20天前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
1月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
2月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
165 92
|
9天前
|
缓存 测试技术 Python
解锁Python超能力:深入理解装饰器
解锁Python超能力:深入理解装饰器
55 2
|
4月前
|
Python
掌握Python装饰器:轻松统计函数执行时间
掌握Python装饰器:轻松统计函数执行时间
284 76
|
1月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
94 0

推荐镜像

更多