上节课复习:
    1、函数参数
    形参
        位置形参
        默认形参
    实参
        位置实参
        关键字实参key=value
    *与**
        形参=》汇总
            *args,**kwargs
        实参=>打撒
            *可以被循环的类型
            **字典
    2、特殊形式
    def wrapper(*args,**kwargs):  # args=(1,2,3)  kwargs={"a":1,"b":2}
        index(*args,**kwargs)  # index(*(1,2,3),**{"a":1,"b":2})
                               # index(1,2,3,a=1,b=2)
wrapper(1,2,3,a=1,b=2)
3、函数对象
    def index(): # index=函数index的内存地址
        print("index")
    def foo(func):  # func=函数index的内存地址
        return func # return 函数index的内存地址
    res=foo(index)  # foo(函数index的内存地址)
    res()
    4、函数嵌套
    def max4(a,b,c,d):
        res1=max2(a,b)
        res2=max2(res1,c)
        res3=max2(res2,d)
        return res3
    def f1():
        def f2():
            pass
    def f1():
        x=10
        def f2(): # f2=内存地址
            print(‘from f2‘)
        return f2
    res=f1()
    print(res)
    res()
今日内容:
    1、名称空间与作用域
    2、闭包
    函数对象+函数嵌套定义+名称空间与作用域=》闭包函数
3、装饰器
原文:https://www.cnblogs.com/dachangtui/p/14050598.html