python实现带参数的decorator,pythondecorator,python的decor
python实现带参数的decorator,pythondecorator,python的decor
python的decorator可以方便的修改函数的执行过程或者返回结果值,有时候我们需要根据情况给decorator设定参数。如下例子:
#coding=utf-8#!/usr/bin/pythondef say(worker): print 'I am worker %s' % worker def dec(fn): def wraped(*argv,**kwgs): print 'staring..' fn(*argv,**kwgs) print 'end.' return wraped return dec@say("main")def main(n): for i in range(n): print i*2if __name__ == "__main__": #@say(argv) 实际上等同于 main=say(argv)(main) main(10)
执行上例,将输出:
I am worker mainstaring..024681012141618end.
带参数的装饰器
对于无参数的装饰器(使用时如:@say),其装饰器函数的参数是要被装饰的函数对象名;而对于有参数的装饰器在调用时使用的是应用的参数,如:@say(argv)的argv,已不再是要被装饰的函数对象名,所以必须在内部再定义一个函数来接收要被装饰的函数对象。
相关内容
- 导出邮箱里的联系人:支持Gmail,126,网易,搜狐,H
- python 把文件夹压缩成tar,pythontar,import tarfi
- python控制shell执行时间,若超时则强行推出,pythonshel
- python登录Discuz!类型论坛的通用代码,pythondiscuz,[Python
- 使用python杀死进程,python杀死进程,使用python脚本根据
- python实现的线程池,python实现线程池,python实现的线程池
- python显示用户友好的时间,python用户,def time_spa
- 用Python在windows命令行输出彩色字符,python命令行,[Pyt
- python 修饰器Decorator原理解密,pythondecorator,如果你看过
- 自定义DJango分页类实现,自定义django分页,感觉DJango的分
评论关闭