zoukankan      html  css  js  c++  java
  • 装饰器预备知识

    装饰器储备知识

    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)

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

    def outter(x):
        # x=1
        def wrapper():
            print(1)
            print(2)
            print(3)
            x
        return wrapper
        # return outter内的wrapper那个函数的内地址

    wrapper=outter(1)

  • 相关阅读:
    MongoDB启动及用户名密码设置
    matplotlib热图
    Python--多进程--01
    python--进程
    python--pipe
    sklearn--feature extract--人脸识别
    Python--pool
    scikit-learn---PCA(Principle Component Analysis)---KNN(image classifier)
    pycharm 添加注册码
    django第三方库
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12554003.html
Copyright © 2011-2022 走看看