首页 > 其他分享 >装饰器模板

装饰器模板

时间:2023-10-30 12:44:06浏览次数:26  
标签:index return res wrapper 模板 func 装饰 def

双层装饰器

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()

标签:index,return,res,wrapper,模板,func,装饰,def
From: https://www.cnblogs.com/hanyingshuo/p/17797563.html

相关文章

  • django基础到高手知识笔记总结 共4大模块50页md文档 第2章:django视图和模板的使用
    当你考虑开发现代化、高效且可扩展的网站和Web应用时,Django是一个强大的选择。Django是一个流行的开源PythonWeb框架,它提供了一个坚实的基础,帮助开发者快速构建功能丰富且高度定制的Web应用完整版笔记直接地址:请移步这里共10章,31子模块,总计18647字工程搭建学习目标......
  • 提高组常见模板总结
    注$^1$:本文中带有~~小粉兔~~字样的文字均指不怎么重要的东西。~~主要是不会~~注$^2$:马蜂良好,可以超,没问题的##~~【小粉兔】~~区间数据结构###1.ST表适用范围:有函数$f$使得$x=f(x,x)$,如$\max,\gcd$等。代码实现:```cppvoidinit(){ for(inti=0;i<n;i++)s......
  • 【模板】自动清空数组 acarray
    这个板子有什么意义?检测对编译器的了解程度。template<classT,intN>structacarray{Tval[N],rev;inttim,vis[N];structrefer{int*tim,*vis;T*val,*rev;refer()=delete;refer(acarray&a,size_tpos):tim(&a.tim),vi......
  • WPF 控件模板
    控件模板WPF的ControlTemplate是一种用于定义和自定义控件的外观和结构的模板,它可以完全替换控件的默认模板,实现个性化和复杂的效果。WPF的ControlTemplate有以下几个特点:ControlTemplate是一个XAML元素,它可以包含任何类型的UI元素,如布局、形状、图像、文本等,这些元素......
  • Java21的新表达式类型-模板表达式
    大家好,我是老七,点个关注吧,将持续更新更多精彩内容!在Java编程语言里,模板表达式这个新玩意儿给大家带来了全新的表达式类型。这篇文章会给大家详细讲解模板表达式是什么,如何用它,以及通过具体的代码示例来展示它的优点。什么是模板表达式模板表达式是Java21里新出的一个表达式类型。它......
  • SSTI模板注入学习
    一、前言最近在练ctf的时候遇到了不少模板注入的漏洞,自己对这一块也一直是一知半解的,所以记录一下,对这一块知识也进行一个总结。二、什么是模板注入SSTI(服务器端模板注入)是格式化字符串的一个非常好的例子,如今的开发已经形成了非常成熟的MVC的模式,我们的输入通过V接收,交给......
  • 设计模式04:装饰器模式、享元模式、命令模式、观察者模式
    1.Decorator装饰器模式 示例代码:packageDecorator09;/***装饰器模式*意图:动态的给一个对象添加一些额外的职责。*适用性:*在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责*处理那些可以撤销的职责*/publicclassDecoratorPatt......
  • pytest + yaml 框架 -55. raw 不转义模板语法
    前言在yaml文件中,设置的引用变量语法是${var},最近有小伙伴提到一个需求:请求参数的内容需要有特殊符号${var},希望不被转义,不要引用变量,直接用原始数据即可。raw忽略模板语法Jinja2提供了"raw"语句来忽略所有模板语法。语法示例{%raw%}hello${var}world!{%endraw%......
  • 如何在Excel中实现三联类模板?
    本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在一些报表打印应用场景中,会有类似于如下图所示的排版格式:一般情况下将这种类型的需求称为“三联”类型,这种三联需求的关键点在于以下两点:1.......
  • Mybatis代码生成——velocity模板元素
    { date=2020-09-26 superControllerClassPackage=null superServiceImplClassPackage=com.baomidou.mybatisplus.extension.service.impl.ServiceImpl baseResultMap=true sEntityName=dictBuilding superMapperClass=BaseMapper superControllerClass......