zoukankan      html  css  js  c++  java
  • python学习之装饰器

    import time
    def timmer(func):
    def wrapper(*args,**kwargs):
    start_time=time.time()
    res=func(*args,**kwargs)
    stop_time=time.time()
    print('函数运行时间是%s'%(stop_time-start_time))
    return res
    return wrapper


    def timer(func):
    def ttimeer():
    start_time=time.time()
    func()
    stop_time=time.time()
    print('所用时间%s'%(stop_time-start_time))
    return func
    return ttimeer

    @timer
    def foo():
    time.sleep(1)
    print("来自foo")
    # @timer相当于foo=timer(foo)
    # foo=timer(foo) 返回ttimeer地址
    # foo() 调用ttimeer方法


    def timer(func):
    def ttimeer(name,age):
    start_time=time.time()
    res=func(name,age)
    stop_time=time.time()
    print('%s,%s所用时间%s'%(name,age,stop_time-start_time))
    return res
    return ttimeer

    @timer
    def foo(name,age):
    time.sleep(1)
    print("来自foo")
    return "foo 返回值"
    # @timer相当于foo=timer(foo)
    # foo=timer(foo) 返回ttimeer地址
    # foo() 调用ttimeer方法
    foo('jj','18')

    装饰器
    本质就是函数,功能是为其他函数添加附加功能

    原则:
    1.不修改被修饰函数的源代码
    2.不修改被修饰函数的调用方式

    装饰器的知识储备
    装饰器=高阶函数+函数嵌套+闭包

    高阶函数:
    函数是第一类对象,即函数可以当作数据传递
    #1 可以被引用
    #2 可以当作参数传递
    #3 返回值可以是函数
    #3 可以当作容器类型的元素

    解压序列:

    >>> a=[10,12,13,1,23,34]
    >>> a,*_,b=a

  • 相关阅读:
    noip2016组合数问题
    noip2017奶酪
    洛谷1091合唱队形
    洛谷P1075 质因数分解
    洛谷1004方格取数
    POJ2393奶酪工厂
    NOIP2012国王游戏(60分题解)
    洛谷1106删数问题
    洛谷1209修理牛棚
    二维树状数组区间修改+区间查询模版
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12659669.html
Copyright © 2011-2022 走看看