装饰器模板

双层装饰器

def outter(func):
    def wrapper(*args, **kwargs):		# wrapper是未来要运行的函数
        # 此处加功能
        res = func(*args, **kwargs)		# func是被装饰的函数
        return res
    return wrapper

三层装饰器:给双层装饰器加参数的

def sanceng():
    def outter(func):
        def wrapper(*args, **kwargs):	# wrapper是未来要运行的函数
            # 此处加功能
            res = func(*args, **kwargs)
            return res
        return wrapper
    return outter

叠加装饰器

def outter1(func):
    def wrapper(*args, **kwargs):		# wrapper是未来要运行的函数
        print('---------')
        res = func(*args, **kwargs)		# func是被装饰的函数
        print('---------')
        return res
    
    return wrapper

def outter2(func):
	def wrapper(*args, **kwargs):		# wrapper是未来要运行的函数
        print('***********')
        res = func(*args, **kwargs)		# func是被装饰的函数
        print('***********')
        return res
    
    return wrapper

@outter1	# index = outter1(index)
@outter2	# index = outter2(index)	# 先运行最下面的装饰器
def index():
    print('index')
   
# index(重新定义的index) = outter2(index 真正的index)
index = outter2(index)
# index(再一次重新定义的index) = outter1(index重新定义的index)
index = outter1(index)
index()
posted @   hanyingshuo  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示