zoukankan      html  css  js  c++  java
  • 装饰器

    装饰器 = 高阶函数+闭包+函数嵌套
    高阶函数定义:
    函数接收的参数是函数名,或者函数的返回值是一个函数名
    函数嵌套:
    一个函数内,在重新定义一个函数
    闭包:
    其实就是作用域的另外一种名词,当前函数调用变量时,本地没有就找
    上级。上级函数包含下级函数

    def wapper(func):
        def inner(x,y):
            print(x+y)
            func(x,y)
        return inner
    
    
    @wapper                  
    def foo(x,y):
        print(x-y)

    1,将foo内存地址传递到wapper(foo),func接收foo内存地址

    2.返回inner内存地址,foo接收   foo = inner

    3.执行foo(3,2),就是执行inner(3,2),inner里面的func其实值接收的最开始传递进来的foo的内存地址

    装饰器加参数

    import time
    
    def timmer(func):
        def con(*args, **kwargs):
            start_time = time.time()
            res = func(*args, **kwargs)
            stop_time = time.time()
            print('函数运行时间是:%s' % (stop_time - start_time))
            return res
        return con
    @timmer
    def test(name, age,sex,money):
        time.sleep(3)
        print('函数运行完毕')
        print(f'name是{name},年纪是{age},性别是{sex},存款是{money}')
        return '这是test返回值'
    
    
    res = test('zheng', age=18, sex='')
    
    print(res)
  • 相关阅读:
    A naive AI for TicTacToe
    table font size LaTex
    Python:关于爬虫(2)
    Python:关于爬虫(1)
    RStudio的安装
    Python中安装numpy matplotlib scipy
    python函数编程
    JavaScript的基础语法
    数据结构——线性表的顺序表示(5)
    数据结构——线性表的顺序表示(4)
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/10153396.html
Copyright © 2011-2022 走看看