def zsq(fun):
def zsq_n(*args,**kwargs)
print('这是装饰器需要运行内容')
r = fun(*args,**kwargs)
print('在被装饰函数执行完成下运行显示')
return r
return zsq_n @zsq
def a():
print('这是一个被装饰的函数') a()
>>>这是装饰器需要运行内容
>>>这是一个被装饰的函数
>>>在被装饰函数执行完成下运行显示

装饰器执行操作的顺序和被装饰函数在装饰器内部位置决定


上面这一个是不需要装饰器参数就能执行那么需要参数的装饰器怎么写呢?

def zsq(装饰器形参date):
def zsq_n(fun):
def zsq_nn(*args,**kwargs)
print('这是装饰器参数',data)
print('这是装饰器需要运行内容')
r = fun(*args,**kwargs)
print('在被装饰函数执行完成下运行显示')
return r
return zsq_nn
return zsq_n @zsq('2019.4.17')
def a(x+y):
return x+y a(5,6)
>>>这是装饰器参数2019.4.17
>>>这是装饰器需要运行内容
>>>11
>>>在被装饰函数执行完成下运行显示

只不过是在装饰外部套一层皮.

注意当不需要装饰器参数时,@zsq,

需要时是@zsq(参数)


如果还看不动那么给个比方

def 大臣(太子名):
def 做皇帝的位置(太子的能力):
r = 太子执行的能力
返回太子的能力r(包装)
皇帝的能力 @大臣
def 太子名():
执行的太子能力

就像是一个国家皇帝挂了,太子无能为力,于是忠心的大臣扶持太子上位,一共组成皇帝的能力,

pass

>>>>>>>>>>>>>>>>>>>

python装饰器见解笔记的更多相关文章

  1. python装饰器学习笔记

    定义:本质上就是个函数,(装饰器其他函数)就是为了给其他函数添加附加功能 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 #-*-coding:utf-8-*- 1 imp ...

  2. Python 装饰器学习心得

    最近打算重新开始记录自己的学习过程,于是就捡起被自己废弃了一年多的博客.这篇学习笔记主要是记录近来看的有关Python装饰器的东西. 0. 什么是装饰器? 本质上来说,装饰器其实就是一个特殊功能的函数 ...

  3. Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案

    本文为霍格沃兹测试学院学员学习笔记. Python 装饰器简介 装饰器(Decorator)是 Python 非常实用的一个语法糖功能.装饰器本质是一种返回值也是函数的函数,可以称之为“函数的函数”. ...

  4. 关于python装饰器

    关于python装饰器,不是系统的介绍,只是说一下某些问题 1 首先了解变量作用于非常重要 2 其次要了解闭包 def logger(func): def inner(*args, **kwargs) ...

  5. python装饰器通俗易懂的解释!

    1.python装饰器 刚刚接触python的装饰器,简直懵逼了,直接不懂什么意思啊有木有,自己都忘了走了多少遍Debug,查了多少遍资料,猜有点点开始明白了.总结了一下解释得比较好的,通俗易懂的来说 ...

  6. Python 装饰器学习

    Python装饰器学习(九步入门)   这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 1 2 3 4 5 6 7 8 # -*- c ...

  7. python 装饰器修改调整函数参数

    简单记录一下利用python装饰器来调整函数的方法.现在有个需求:参数line范围为1-16,要求把9-16的范围转化为1-8,即9对应1,10对应2,...,16对应8. 下面是例子: def fo ...

  8. python 装饰器学习(decorator)

    最近看到有个装饰器的例子,没看懂, #!/usr/bin/python class decorator(object): def __init__(self,f): print "initi ...

  9. Python装饰器详解

    python中的装饰器是一个用得非常多的东西,我们可以把一些特定的方法.通用的方法写成一个个装饰器,这就为调用这些方法提供一个非常大的便利,如此提高我们代码的可读性以及简洁性,以及可扩展性. 在学习p ...

随机推荐

  1. 树状数组 hdu2689 hdu2838

    题意:给定一个正整数n,和一个1-n的一个排列,每个数可以和旁边的两个数的任意一个交换,每交换一次总次数就要加一,问将这个排列转换成一个递增的排列需要多少次交换? 题意可以转换成求这个排列的逆序对数. ...

  2. 四、RabbitMQ Exchange类型

    RabbitMQ整体上是一个生产者与消费者模型,主要负责接收.存储和转发消息.可以把消息传递的过程想象成:当你将一个包裹送到邮局,邮局会暂存并最终将邮件通过邮递员送到收件人的手上,RabbitMQ就好 ...

  3. Centos防火墙开启端口

    linux系统对外开放80.8080等端口,防火墙设置 我们很多时候在liunx系统上安装了web服务应用后(如tomcat.apache等),需要让其它电脑能访问到该应用,而Linux系统(cent ...

  4. FileZilla相关配置说明

    相关下载可以直接到官网,或者阿里云帮助:https://help.aliyun.com/knowledge_detail/36243.html?spm=5176.10695662.1996646101 ...

  5. bubble chart|Matrix Scatter|Overlay Scatter|Scatterplots|drop-line|box plot|Stem-and-leaf plot|Histogram|Bar chart|Pareto chart|Pie chart|doughnut chart|

    应用统计学 对类别数据要分类处理: Bar chart复式条形图便于对比: Pareto chart:对类别变量依据频数高低排列: Pie chart:饼图用于一个样本,可以区分类别数据 doughn ...

  6. [洛谷P3403] 跳楼机

    题目传送门 套路题,同余最短路. 先只考虑y.z进行连边,再在mod x的意义下进行计算. 这里的“距离”dis[i]指的是,在所有满足a mod x=i的a里,能到达的最小的a是多少. 显然只要能到 ...

  7. 维生素D补充过多会中毒

    虽然我们的物质生活越来越丰富,各种食材几乎一年四季都能够吃到,然而却越来越多的人选择进行补充各种维生素,但是你知道吗?维生素不是我们想象中多吃无害的,补充过多也会要人命,特别是最近非常流行补充的一种维 ...

  8. 【software】变异注释工具:annovar

    annovar提供三种注释方式 一,基于基因的注释 给定变异,看变异是否影响编码蛋白的改变 支持基因定义系统:RefSeq genes, UCSC genes, ENSEMBL genes, GENC ...

  9. http客户端如何写

    使用wireshark协助,设置网卡本地,设置过滤器:http && (ip.src == 192.168.1.80 && ip.dst == 192.168.1.81 ...

  10. 通过git shell 在Github上传本地项目

    首先现在github上新建一个库,再进行如下操作,过程不赘述 1.打开git shell 2.cd到项目位置       // cd archives-vue 3.git init 4.Get add ...