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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言简单说】二:第一个C语言程序详解(3)

如有错误请给与纠正… 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。 上一个教程只说明了第一个C语言程序源码中的main(其实等于没说)&…

【转载】关于测试人员的职业发展

近期由于项目组人手不够,需要招聘一些测试人员。本周及上周陆陆续续面试了十多个应征者,工作年限在2年~9年之间,但无一满意。期间,种种感叹,回想起去年面试六十余人仅有3人满足要求,如有鲠在喉,…

python之闭包

1 闭包概念 绑定了函数内部引用的所有变量,把它引用的东西都放在一个上下文中“包”了起来 2 闭包的Demo理解 需求:比如我们要实现2个函数,每个函数有个参数,然后现在需要实现这2个函数参数的相加功能 1) 不用闭包python普通实现 #!/usr/bin/env pythondef plus…

C#求一元二次方程的根经典案例程序

目 录 1. 界面设计 2. C#源程序 1. 界面设计 界面说明: 输入一元二次方程的二次项、一次项及常数项,这样的话对应的一元二次方程表达式就确定了,点击【计算】,即可计算出该一元二次方程的根。 2. C#源程序 using System; using System.Collections.Generic; using S…

pythonrequests说明_解决Python requests 报错方法集锦

python版本和ssl版本都会导致 requests在请求https网站时候会出一些错误,最好使用新版本。 1 Python2.6x use requests 一台老Centos机器上跑着古老的应用,加了一个新模块之后报错 报错 InsecurePlatformWarning: A true SSLContext object is not avail…

centos6,7的启动流程

CentOS 6 系统启动流程:POST --> BootSequence(BIOS) --> Bootloader --> kernel [-->ramfs] -->rootfs(ro) --> /sbin/init --> 设定默认运行级别 --> 系统初始化 --> 可以并行执行ctrlaltdel热键功能定义,系统服务的开启和…

微软是如何解决 PC 端程序多开问题的

前言在公众号上看到一篇文章《C#中解决PC端程序多开的问题》。该文作者是通过创建互斥锁Mutex实现的:bool mutexCreated; var mutex new Mutex(true, "MyApp", out mutexCreated); if (mutexCreated) {Application.Run(new Form1()); } else {MessageBox.Show("…

java中inputstream_java中InputStream String

Java 中获取输入流时,有时候须要将输入流转成String,以便获取当中的内容 ,以下总结一下 InputStream 转成String 的方式方法1:public String convertStreamToString(InputStream is) {BufferedReader reader new BufferedReader(new InputSt…

【C语言简单说】三:整数变量和输出扩展(1)

唔!经历之前眼瞎的教程之后,现在我继续的眼瞎着写接下来的章节… 注:注意我们每一行代码后面的分号表示我们一句代码的结束,就像我们在写文字的时候的标点符号,一个句号表示一句话的结尾。 注:我们printf…

做程序员的纠结在哪里

做程序员的纠结在于,人们与计算机之间的沟通的鸿沟现在交给了程序员来填。 好的程序员,必然有一面是在用0和1的模式来思考问题。 现在有很多职位也挂了程序员的名字。 比如比如数据分析师,说到底,如果你不写程序,应该称…

磁盘和文件系统管理一

主要掌握规划硬盘中的分区,创建文件系统,挂载卸载文件系统。学会添加并进行分区,学会创建并挂载文件系统。 检测并确认新硬盘 fdisk –l [磁盘设备] 规划磁盘中的分区fdisk [磁盘设备] 用途:在交互是的操作环境中管理磁盘分区 交…

JavaScript面向对象编程笔记

<!DOCTYPE html> <html> <head><title>面向对象编程</title><script type"text/javascript">var person {};//或者这样&#xff1a;var person new Object();person.name "张三";person.age 20;//函数充当属性&a…

C和指针之memmove函数 memcpy函数 strcspn函数 strspn函数 strrstr函数实现

1 memmove函数的实现 #include <stdio.h> #include <string.h>void* my_memmove(void*dest, const void*src, size_t len) { char *pdest = (char *)dest; const char* psrc = (char *)src; if ((psrc < pdest) && (pdest < psrc + len)) {…

NodeJS-queryString

无论是前端还是后端&#xff0c;经常出现的应用场景是URL中参数的处理。nodeJS的queryString模块提供了一些处理 query strings 的工具。本文将详细介绍nodeJS中的queryStringvar querystring require(querystring);/*{ unescapeBuffer: [Function],unescape: [Function: qsUn…

ASP.NET和ASP.NETCore多环境配置对比

前言多环境配置应该都很熟悉了&#xff0c;最为常见的便是Debug和Release&#xff0c;例如下图是新建的一个asp.net项目&#xff0c;配置文件展开共有三个文件组成据我所知&#xff0c;大多公司从来没编辑过Web.Debug.config和Web.Release.config&#xff0c;一个Web.config文件…

d类功放芯片_应用于无滤波级D类音频功放的新型死区时间控制系统

在音频功率放大领域&#xff0c;由于D类音频功率放大器是基于脉冲宽度调制技术的开关放大器[1-4]&#xff0c;用作放大的功率管几乎总是处于或者完全导通或者完全截止的状态&#xff0c;因此其功率损耗比传统的线性放大器小得多&#xff0c;这使得其效率非常高&#xff0c;符合…

java 字节序列_java – 这个线程安全的字节序列生成器有什么问题?

我需要一个字节生成器,它将生成从Byte.MIN_VALUE到Byte.MAX_VALUE的值.当它达到MAX_VALUE时,它应该从MIN_VALUE重新开始.我使用AtomicInteger编写了代码(见下文);但是,如果同时访问并且如果使用Thread.sleep()人为地减慢了代码,那么代码似乎没有正常运行(如果没有睡眠,它运行正…

【C语言简单说】三:整数变量和输出扩展(2)

尼玛。。。简直蛋了个翔。。。 没保存&#xff0c;&#xff0c;&#xff0c;&#xff0c; ( E___E ) 念昏了头 注&#xff1a;注意我们每一行代码后面的分号表示我们一句代码的结束&#xff0c;就像我们在写文字的时候的标点符号&#xff0c;一个句号表示一句话的结尾。 注…

Makefile的写法

1.Makefile的规则 1.1 格式 目标&#xff1a;依赖命令…… 必须注意的是&#xff0c;命令前面的不是空格&#xff0c;而是制表符Tab。 1.2 伪目标 makefile中把那些只包含命令&#xff0c;没有任何依赖的目标称为”伪目标”(phony targets) 1 .PHONY: clean 2 clean: 3 …

C和指针之strcat函数 strchr函数 strcmp函数 strcpy函数 strnchr函数 strstr函数实现

1 strcat函数实现 #include <stdio.h> //简单实现strcat函数 char *my_strcat(char *des, const char *src) {if (des == NULL || src == NULL)return des;char *result = des;//把指针移到末尾while (*des)des++;printf("*des is %c\n", *des);while ((*des…