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

  • 相关阅读:
    HDU 5023 A Corrupt Mayor's Performance Art(线段树区间更新)
    CSU 1120 病毒(DP)
    CSU 1116 Kingdoms(枚举最小生成树)
    一种map容器遍历的方法
    CSU 1113 Updating a Dictionary(map容器应用)
    Python模块-virtualenv-虚拟环境
    计算学习原理
    sklearn-特征工程之特征选择
    链家网深圳租房信息分析报告
    test
  • 原文地址:https://www.cnblogs.com/jinpingzhao/p/12659669.html
Copyright © 2011-2022 走看看