装饰器预备知识

装饰器储备知识

1、 *args, **kwargs

def index(x,y):
    print(x,y)


def wrapper(*args,**kwargs):
    index(*args,**kwargs) #
                          # index(y=222,x=111)
wrapper(y=222,x=111)

2.名称空间与作用域:名称空间的的"嵌套"关系是在函数定义阶段,即检测语法的时候确定的

3.函数对象

3.1可以把函数当作参数传入

3.2可以把函数当作返回值返回

def index():
    return 123

def foo(func):
    return func

foo(index)

4.函数的嵌套定义

def outter(func):
    def wrapper():
        pass
    return wrapper

5.闭包函数

def outter():
    x=111
    def wrapper():
        x
    return wrapper

f=outter()

6.

传参的方式一:通过参数的形式为函数体传值

def wrapper(x):
    print(1)
    print(2)
    print(3)
    x

wrapper(1)
wrapper(2)
wrapper(3)

传参的方式二:通过闭包的方式为函数体传值

扫描二维码关注公众号,回复: 10095279 查看本文章
def outter(x):
    # x=1
    def wrapper():
        print(1)
        print(2)
        print(3)
        x
    return wrapper
    # return outter内的wrapper那个函数的内地址

wrapper=outter(1)

猜你喜欢

转载自www.cnblogs.com/bailongcaptain/p/12554003.html