python中的装饰器
什么是装饰器
如果有函数A,B,C,已经所有编写完毕。这时你发现A, B, C都须要同一个功能,这时该怎么办?
答: 装饰器
装饰器事实上就是一个函数,只是这个函数的返回值是一个函数
个人理解。装饰器主要就是为了完毕上边的这个功能,将A, B, C 函数包裹在还有一个函数D中。D函数在A函数运行之前或之后,处理一些事情
#!/usr/bin/env python
#coding:utf-8
def SeparatorLine():print "############################"#装饰器带參数函数带參数
def DecratorArgFuncArg(f1,f2):def inner(func):def wrapper(arg):print "装饰器带參数函数带參数"f1() result = func(arg)f2()return result return wrapperreturn inner#装饰器带參数函数不带參数
def DecratorArgFuncNoArg(f1,f2):def inner(func):def wrapper():print "装饰器带參数函数不带參数"f1() result=func()f2()return resultreturn wrapperreturn inner#函数没有參数的装饰器
def FuncNoArgDecrator(func):def wrapper():print "函数没有參数的装饰器" func()return wrapper#函数有參数的装饰器
def FuncArgDecrator(func):def wrapper(arg):print "函数有參数的装饰器" func(arg)return wrapper#函数有返回值的装饰器
def FuncReturnDecrator(func):def wrapper():print "函数有返回值的装饰器" result=func()return resultreturn wrapper#这两个函数用
def login():print '開始登录'def logout():print '退出登录'@FuncArgDecrator
def Lee(arg):print 'I am %s' %arg@FuncNoArgDecrator
def Marlon():print 'i am Marlon'@DecratorArgFuncNoArg(login,logout)
def Allen():print 'i am Allen' @DecratorArgFuncArg(login,logout)
def Aswill(name):print 'I am %s' %name @FuncReturnDecrator
def Frank():return 'I am frank'if __name__=='__main__':SeparatorLine()Lee('Lee')SeparatorLine()Marlon()SeparatorLine()Allen()SeparatorLine()Aswill('Aswill')SeparatorLine()result = Frank()print result
python中的装饰器相关推荐
- python装饰器原理-python 中的装饰器及其原理
装饰器模式 此前的文章中我们介绍过装饰器模式: 装饰器模式中具体的 Decorator 实现类通过将对组建的请求转发给被装饰的对象,并在转发前后执行一些额外的动作来修改原有的部分行为,实现增强 Com ...
- python类装饰器详解-python 中的装饰器详解
装饰器 闭包 闭包简单的来说就是一个函数,在该函数内部再定义一个函数,并且这个内部函数用到了外部变量(即是外部函数的参数),最终这个函数返回内部函数的引用,这就是闭包. def decorator(p ...
- python中的装饰器decorator
python中的装饰器 装饰器是为了解决以下描述的问题而产生的方法 我们在已有的函数代码的基础上,想要动态的为这个函数增加功能而又不改变原函数的代码 例如有三个函数: def f1(x):return ...
- python编写装饰器_写python中的装饰器
python中的装饰器主要用于在已有函数实现功能前附加需要输出的信息,下面将用实例展示我如何写装饰器. 首先分别尝试写装饰器装饰一个无参函数和一个有参函数(被装饰函数仅输出,无返回值情况下) 1 de ...
- python中的装饰器(基础装饰器)
文章目录 一 前置知识-高阶函数,闭包 1. 高阶函数 2. 闭包 二 函数装饰器 1. 什么是装饰器(原理)? 2. 装饰器的实现 3. 何时执行装饰器 4. wraps方法 三 类装饰器 一 前置 ...
- [转载]理解PYTHON中的装饰器
[翻译]理解PYTHON中的装饰器 来源stackoverflow上的问题 链接 python的函数是对象 要理解装饰器,首先,你必须明白,在python中,函数是对象. 这很重要. 简单例子来理解为 ...
- 为什么说想到Python中的装饰器是天才
为什么说想到Python中的装饰器是天才 只需一个@符号就能分析.测试和重复使用你的代码 带着魔杖的仙女在Python代码中飞舞 软件中有没有什么是神奇的小魔法? 有,装饰器却非常接近! 如果说有一件 ...
- python中的装饰器有哪些-python 装饰器以及开发中常用的例子
有时候我们想为多个函数,同意添加某一种功能,比如及时统计,记录日志,缓存运算结果等等,而又不想改变函数代码 那就定义装饰器函数,用它来生成一个在原函数基础添加了新功能的函数,代替原函数 参考金角大王的 ...
- python中的装饰器怎么运行_Python 装饰器入门(上)
翻译前想说的话: 这是一篇介绍python装饰器的文章,对比之前看到的类似介绍装饰器的文章,个人认为无人可出其右,文章由浅到深,由函数介绍到装饰器的高级应用,每个介绍必有例子说明.文章太长,看完原文后 ...
- Python中的装饰器是什么?装饰器是如何工作的?
Python很早就引入了装饰器--在PEP-318中,作为一种简化函数和方法定义方式的机制,这些函数和方法在初始定义之后必须进行修改. 这样做的最初动机之一是,使用classmethod和static ...
最新文章
- nginx+tomcat+memcache实现负载均衡、session共享
- 使用SQLyog无法连接到MySQL,error code 2013
- 【VC基础】2、物料主档与BOM结构
- 论文总结(negFIN: An efficient algorithm for fast mining frequent itemsets)
- 如何写一个作用域安全的构造函数
- 数据结构探险——图篇
- 解决XP中CPU占用率过高问题, 关了445这个端口(ZT)
- 阿里云黄海宇:视频云的云原生实践
- php lwm2m,LwM2M和CoAP及它们之间的关系
- 大漠插件后台绑定模式备忘录
- 三个技巧教你怎么裁剪视频画面,手残党也能掌握
- 渔乡朱朱的三农短视频账号运作和变现方法
- 自媒体人必看,这些无版权背景音乐网站,免费下载
- M40Z-025003TB0西克光电开关 订货号: 1200128
- 《Total Commander:万能文件管理器》——第7.3节.总结与作业
- Web前端-JavaScript
- C语言程序设计实践题,2020年C语言程序设计实践实验题目.doc
- 智能血压计方案/设计案列/APP/小程序
- Ublox F9p接收机在Windows 的相关配置
- camera face
热门文章
- java就业培训教程 第一章读书笔记
- decode()、nvl()等用法详解
- Java如何实现分页
- _Linux结束进程到底有多少种方法?
- java jar包 配置文件_java 导入jar包中配置文件
- java break递归_【Java】递归总结
- Linux(CentOS6.5)下编译安装Nginx1.10.1
- 计算机网络原理(第三章) 传输层 课后习题
- Oracle存储过程快速入门
- 互联网晚报 | 04月07日 星期四 |​ ​​​​刘强东卸任京东集团CEO,徐雷接任;世卫组织:中医药对治疗新冠有效...