疯狂Erlangyueming.blog.chinaunix.net
yueming
全部博文(921)
mnesia(1)
Flex框架(0)
mxml(0)
AS3(0)
MongoDB(1)
NOSQL(4)
关系型(Mysql)(0)
redis(49)
gevent(2)
Django(7)
Twisted(94)
wxpython(0)
Magento文档翻译(0)
C/C++(4)
AMP(9)
平面&三维设计(0)
网页三剑客&&html(0)
asp&&sqlserver(0)
2020年(1)
2019年(3)
2018年(3)
2017年(6)
2016年(47)
2015年(72)
2014年(25)
2013年(72)
2012年(125)
2011年(182)
2010年(42)
2009年(14)
2008年(85)
2007年(89)
2006年(155)
无色T恤
13790913
wanglian
swsw23
无赖皮肤
zhuqing_
qq203586
hk_sean
jiannma
saberwen
nowhere
__s1ng我
kubernet
wuhanyan
weiyunyi
refreshR
格伯纳
yuankk8
分类: Python/Ruby
2014-12-01 16:16:00
装饰器将在解释器运行一开始就被加载, 从而将被装饰的函数将被展开成如上方式, 因为 run_time装饰器返回wrapper函数, 所以当调用test函数时其实就是对wrapper的调用 如果你在Python shell下执行以上语句就会发现定义完test函数然后查看test时, shell所展示的是wrapper函数: 接下来说说如何编写带参数的装饰器, 大家如果细心的话就可以发现其实带参数的装饰器是经过调用"装饰器"函数返回的一个装饰器, 之所以装饰器上打引号是说明其实这个所谓的"装饰器"只不过是一个普通的函数, 但这个普通的函数返回一个装饰器, 可以参看下面例子: import time def route(url): def decorator(func): func.__url__ = url return func return decorator @route(r"/") def index(): return "Hi" 大家可以发现在使用route装饰器时我们其实是调用了route函数, route函数返回一个decorator装饰器, 因为我们不需要在装饰器内运行函数, 所以不需要一个wrapper函数来收集参数.
上一篇:游戏服务器架构设计中的一些思考
下一篇:MMO寻路和碰撞检测讨论
登录 注册