1.15使用装饰器改变函数行为
来源:互联网 发布:交通数据开放平台 编辑:程序博客网 时间:2024/05/29 11:23
自学python学到这里自觉没有理解透装饰器的精髓,看到知乎一篇文章感觉讲的很好。全程会心一笑看完。
如何理解Python装饰器? - 李冬的回答 - 知乎
下面是一个简单的装饰器的应用
#使用装饰器改变函数行为from string import punctuationdef pipeline_wrapper(func):#func表示被装饰函数 def to_lower(x): return x.lower() def remove_punc(x): for p in punctuation: x=x.replace(p,' ') return x def wrapper(*args,**kwargs): x=to_lower(*args,**kwargs)#当参数不确定时,可用*args和*kwargs\ #*args可当做可容纳多个变量的list\ #*kwargs可当做可容纳多个键和值的字典 x=remove_punc(x) return func(x) return wrapper#返回wrapper函数@pipeline_wrapper #装饰器函数,名称为装饰器的名称def tokenize_whitespace(inText): return inText.split()s="string.With.Punctuation?"print tokenize_whitespace(s)#先运行装饰器,再运行被装饰的函数
运行结果为 ['string', 'with', 'punctuation']
运行print tokenize_whitespace(s)
的步骤为先运行装饰器,然后运行被装饰的函数,所以先转成小写,然后把标点替换成空格,最后split分开
关于def pipeline_wrapper(func)
中func的说明:
这里的func指被装饰的函数
@decorator_adef f(x): print 'Get in f' return x*2#相当于def f(x): print 'Get in f' return x*2f=decorator_a(f)
阅读全文
0 0
- 1.15使用装饰器改变函数行为
- sigaction函数 - 改变信号行为
- HOOK 改变API函数行为
- sigaction函数 - 改变信号行为
- 请教:python装饰器如何不改变原函数名
- Python: 使用装饰器“@”取得函数执行时间
- python 使用函数装饰器的例子
- 9-1使用函数装饰器
- python-函数装饰器的使用-25
- python函数装饰器的使用
- mybatis 拦截器,改变默认行为
- PYTHON 函数装饰器
- python 函数装饰器
- Python函数:装饰器
- 超时函数装饰器
- 装饰器函数
- Python 函数装饰器
- 完善装饰器函数
- 三极管+电容 实现的心形灯电路
- Linux进程间通信——管道 pipe 详解
- BZOJ 1601 [Usaco2008 Oct]灌水(最小生成树)
- springboot中ehcache的使用
- yarn —— Nodejs包新管理工具
- 1.15使用装饰器改变函数行为
- 4.day11_包和权限修饰符-1
- java的关系运算符
- 杭电2017新生赛1009-最大收益
- 谷歌浏览器开发调式工具devTools最新教程(完整版)
- java的逻辑运算符
- 数据保护 data protection
- [待补完]CODE FESTIVAL 2017 Final (Parallel) A,B,C(搜索)
- 杭电2017新生赛1006-稿件整理