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)

  • 相关阅读:
    leetcode 34 rust
    leetcode 2 rust
    leetcode 1 rust
    leetcode 20 rust
    leetcode 287 rust
    leetcode 18 rust
    lottery抽奖
    webpack
    webpack(7)-生产环境
    webpack(6)-模块热替代&tree shaking
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12554003.html
Copyright © 2011-2022 走看看