函数定义的上一行有 @functionName 的修饰,解释器读到这样的修饰之后,先解析@后的内容,直接就把@下一行的函数或者类作为 @ 后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象. 即: 从第一个函数修饰符开始,自下而上做参数传递,实际上是使用约定的函数修饰符达到函数嵌套的目的。
def funA(a):
print 'funA'
def funB(b):
print 'funB'
@funA
@funB
def funC():
print 'funC'
result:
funB
funA
类似于: return funA(funB(funC))
未完待续
本文介绍了Python中函数装饰器的工作原理,通过示例展示了如何使用装饰器实现函数的嵌套调用。装饰器可以用于增强函数的功能,如日志记录、权限验证等。
348

被折叠的 条评论
为什么被折叠?



