首页 > 其他 > 详细

9.1装饰器前提

时间:2018-03-05 11:00:21      阅读:205      评论:0      收藏:0      [点我收藏+]
装饰器三个前提:

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装饰器前提

原文:http://blog.51cto.com/10777193/2082948

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!