概述:
如果彻底弄懂装饰器的问题,建议您耐心读完整篇博客,相信您一定会有收获
装饰器是一个可以调用的对象,其参数是另外一个函数的函数名,函数装饰器可能会处理被装饰的函数,然后将其返回,或者将其替代为另外一个函数或者可调用的对象。
@decorate
def func():
print "func"
上面是函数装饰器最简单的用法,其作用等同于下面的写法
def func():
print "func"
func = decorate(target)
以下问题的答案有助于弄清楚并且掌握装饰器:
- python装饰器的一般语法及装饰器何时执行
- 对于最简单的装饰器来讲,装饰器的形式是函数的嵌套,即内外两层函数
- 外部函数的参数是被装饰函数的函数名,返回值为内部函数的函数名
- 内部函数接受参数为被装饰函数的参数,返回值为被装饰函数的返回值
- 函数装饰器在导入模块时立即执行
# 最典型的函数装饰器形式 >>>def decorater(func): def inner(*args, **kwargs): return func() return inner # 装饰器的使用 >>>@decorater def func(): print("running func") >>>func() running func >>>func <function decotater/<local>.inner at 0x1041543832>
- python如何判断变量的作用域
首先应该知道,函数中的变量分为L、E、G、B,其中E是Enclosing function locals,即嵌套函数内的变量,