9.1装饰器前提

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.1装饰器前提相关的知识,希望对你有一定的参考价值。

装饰器三个前提:

1. 作用域:原则:L E G B
2. 高阶函数:成立条件:①函数作为函数参数输入,或者②函数做为返回值输出;
3. 闭包:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)

def outer():
    x=10
    def inner():
        print(x)
    return inner

print(outer())
# <function outer.<locals>.inner at 0x00000068BEC8D158>
outer()()
# 10

f=outer()
f()
# 10

如上实例:inner就是内部函数,inner里引用了外部作用域的变量x(x是在外部作用域outer里面,但不是全局变量),则这个内部函数inner就是一个闭包。
闭包=函数块+定义函数时的环境,inner就是函数块,x就是环境,当然这个环境可以有很多,不止一个简单的x。

大家对内容有任何问题,欢迎留言,定在第一时间解答,谢谢大家!

以上是关于9.1装饰器前提的主要内容,如果未能解决你的问题,请参考以下文章

装饰器

装饰器

python 之 函数 装饰器

无参装饰器

python函数装饰器

Python学习---装饰器的学习1210