python3-day4(装饰器)
一.基本
第一波 ####
def foo():print 'foo'foo #表示是函数
foo() #表示执行foo函数#### 第二波 ####
def foo():print 'foo'foo = lambda x: x + 1foo() # 执行下面的lambda表达式,而不再是原来的foo函数,因为函数 foo 被重新定义了
二.example
#一个参数
def w1(func): #func = f1def inner(arg): #arg是f1的参数print('auth %s'%arg) #新增加内容return func(arg) #运行老f1return inner #返回inner给新的f1@w1
def f1(arg):print('f1 %s'%arg)f1('alex') #运行新的F1了
#二个参数def w2(func):def inner(arg1,arg2):print("auth %s,%s"%(arg1,arg2))return func(arg1,arg2)return inner@w2
def f2(arg1,arg2):print("f2 %s,%s"%(arg1,arg2))f2('tom','boy')
#N个参数
def w3(func):def inner(*args,**kwargs):print('auth')return func(*args,**kwargs)return inner@w3
def f3(arg1,arg2,arg3):print("f3 %s,%s,%s"%(arg1,arg2,arg3))f3('tom','is','boy')#一个函数被多个装饰器装饰
def w1(func):def inner(*args,**kwargs):print('w1')return func(*args,**kwargs)return innerdef w2(func):def inner(*args,**kwargs):print('w2')return func(*args,**kwargs)return inner@w1
@w2
def f3(arg1,arg2,arg3):print("f3 %s,%s,%s"%(arg1,arg2,arg3))f3('tom','is','boy')#通用装饰器
def Before(request,kargs):print('before')def After(request,kargs):print('after')def Filter(before_func,after_func):def outer(main_func):def wrapper(request,kargs):before_result = before_func(request,kargs)main_result = main_func(request,kargs)after_result = after_func(request,kargs)return wrapperreturn outer@Filter(Before, After)
def Index(request,kargs):print('index')Index('a','b')
转载于:https://www.cnblogs.com/weibiao/p/5225897.html
python3-day4(装饰器)相关推荐
- Python3中装饰器@typing.overload的使用
typing.py的源码在:https://github.com/python/cpython/blob/main/Lib/typing.py .此模块为类型提示(Type Hints)提供运行时支持 ...
- python3练习-装饰器
在廖雪峰的官方网站学习装饰器章节时,初步理解类似与面向切面编程.记录一下自己的课后习题解法. 问题: 请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call ...
- python3大器----装饰器,迭代器,生成器
目录 一:闭包: 1:闭包的作用和定义: 2:闭包的形成条件: 3:闭包的经典案例: 4:闭包的原理: 5: 闭包中使用外部函数变量: 二:装饰器: 1:装饰器的定义和作用: 2:装饰器经典案例分析: ...
- Python3中装饰器介绍
Python中的装饰器(decorator)是一个接受另一个函数作为参数的函数.装饰器通常会修改或增强它接受的函数并返回修改后的函数.这意味着当你调用一个装饰函数时,你会得到一个与基本定义 ...
- python3层装饰器_python三层装饰器python字符串,数值计算
Python是一种面向对象的语言,但它不像C++一样把标准类都封装到库中,而是进行了进一步的封装,语言本身就集成一些类和函数,比如print,list,dict etc. 给编程带来很大的便捷 Pyt ...
- python3:装饰器的5大用法总结
装饰器,顾名思义,就是给函数作装饰作用的,相当于只是给函数化了一个妆,并没有给他添加额外的代码,但是却增加了新功能,就如同我们在冬天很冷的情况下,想要变暖和(添加新功能),但是我们不是生活在武侠小说里 ...
- python中装饰器修复技术_python3之装饰器修复技术@wraps
普通函数 def f(): """ 这是一个用来测试装饰器修复技术的函数 """ print("哈哈哈") if __n ...
- itext生成pdf paragraph 自动换行_reportlab高级制作多格式PDF和python的class和装饰器复习
1 说明 1.1 reportlab高级制作多格式PDF:即包含文字.表格.柱状图. 1.2 复习python的class和装饰器的高级基础知识. 1.3 列表转换字符串.读取txt文件等python ...
- day4 高阶函数 嵌套函数 装饰器 内置函数 列表生成式 迭代器 生成器
一.函数即变量 1.赋值效果图 a = 1 b = a def func(): print('hello') func 是函数名,相当于变量名,print('hello')是函数体,相当于变量的值, ...
- python3语法糖------装饰器
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """装饰器""" ###### 第一波 ## ...
最新文章
- cmd系统命令不识别
- TablePlus 3中文版
- 最短路径问题(Floyd算法)
- 使用ExecutorService来停止线程服务
- [NOI2015]寿司晚宴(状压dp)
- HDFS节点内数据平衡
- ubuntu 16.04 + zabbix 3.4 + postgresql libzbxpgsql
- go读取email正文_Go语言库系列之email
- 【手把手带你入门深度学习之150行代码的汉字识别系统】学习笔记 ·002 训练神经网络
- 搜索引擎蜘蛛及网站robots.txt文件详解[转载]
- Java 设计模式 之 代理模式(Proxy)
- 电商管理系统的作用?好用的电商管理系统有哪些特点?
- 如何阅读源码,阅读源码的难点和方法分析
- 光纤接口类型及光纤收发器指示灯图解
- C语言:字符串中各类字符数的统计
- 企业网站优化操作步骤分享
- useCallback包裹函数,但是使用到的外部变量一直是最开始的值
- 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第三章:三态门和多路器
- Linux应急响应之挖矿篇
- html设置背景图片自适应
热门文章
- 数据结构最短路径例题_数据结构算法实验8图的最短路径问题附源代码.doc
- 集合初始化时,指定集合初始值大小
- 计算机网络上网时间,电脑怎么限制上网时间
- python class函数报错_Python multiprocess pool模块报错pickling error问题解决方法分析
- 几个高逼格 Linux 命令!
- mysql-5.5.8_MySQL5.5.8安装
- java conf_JAVA 解析、编辑nginx.conf
- 碎片时间学习前端,我推荐这些~
- 【更名通知】将以个人名义继续更新维护
- 前端人员如何在linux服务器上搭建npm私有库