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)

  • 相关阅读:
    MSXML 解析XML文件
    内存泄露
    TCHAR CHAR LPTSTR LPCTSTR
    union过代理存根
    jquery placeholder
    SASS 编译后去掉缓存文件和map文件
    js冒泡排序
    android 下滤镜效果的实现
    ViewPagger介绍
    android下实现对wifi连接的监听
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12554003.html
Copyright © 2011-2022 走看看