举个例子
def a_decorator(func): def wrapTheFunc(): print "before decorator" func() print "end decorator" return wrapTheFunc @a_decorator def a_func_need_decorator(): print "In a_func_need_decorator()" a_func_need_decorator()
输出
before decorator In a_func_need_decorator() end decorator
等价
不是很明白?
@a_decorator
def a_func_need_decorator():
等价于
a_func_need_decorator = a_decorator(a_func_need_decorator)
修改下代码
def a_decorator(func): def wrapTheFunc(): print "before decorator" func() print "end decorator" return wrapTheFunc def a_func_need_decorator(): print "In a_func_need_decorator()" a_func_need_decorator = a_decorator(a_func_need_decorator) a_func_need_decorator()
结果是一致的
什么?函数还可以作为对象传输
是的,举例
def test(a): print a test2 = test test2("hello")
输出
hello
场景
账号验证
日志
参考
https://www.runoob.com/w3cnote/python-func-decorators.html
原文地址:https://www.cnblogs.com/kaituorensheng/p/11235219.html
时间: 2024-10-07 12:03:46