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

  • 相关阅读:
    Key&Main Window
    ObjectiveC Runtime IV 【使用隐藏的参数】
    JS中的变量作用域
    Git配置
    ObjectiveC Runtime II 【发送消息 vs 调用函数】
    GDB Vs. WinDbg Commands
    mcs51 串口通信 单片机发 pc收
    csharp截屏
    解决WIN7系统中系统文件的“拒绝访问”的方案
    在VC中创建DLL文件的方法步骤
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12659669.html
Copyright © 2011-2022 走看看