zoukankan      html  css  js  c++  java
  • python第九期学习笔记(装饰器进阶)

    • get新技能啦 :

     

     简单的装饰器:

    def timmer(func):
    def inner():
    start_time=time.time()
    func()
    end_time=time.time()
    print('程序执行时长:',end_time-start_time)
    return inner

    @timmer #func1=timmer(func1)
    def func1():
    time.sleep(2)
    print('in func1')

    # func1=timmer(func1)
    func1()

    带参数的装饰器:
    传入一个参数:
    def timmer(func): 
    def inner(a):
    start_time=time.time()
    func(a)
    end_time=time.time()
    print('程序执行时长:',end_time-start_time)
    return inner

    @timmer
    def func1(a):
    time.sleep(2)
    print('in func1',a)

    func1(1)
     #动态传入参数
    def timmer(func):
    def inner(*args,**kwargs):
    start_time=time.time()
    func(*args,**kwargs)
    end_time=time.time()
    print('程序执行时长:',end_time-start_time)
    return inner

    @timmer
    def func1(a):
    time.sleep(2)
    print('in func1',a)

    @timmer
    def func2(a,b):
    time.sleep(2)
    print('in func2',a,b)

    func2(1,2)
    带返回值:
    def timmer(func):
    def inner(*args,**kwargs):
    start_time=time.time()
    ret=func(*args,**kwargs)
    end_time=time.time()
    print('程序执行时长:',end_time-start_time)
    return ret
    return inner

    @timmer
    def func1(a):
    time.sleep(2)
    print('in func1',a)

    @timmer
    def func2(a,b):
    time.sleep(2)
    print('in func2',a,b)

    func2(1,2)

    装饰器进阶:
    def wrapper(f):
    def inner(*args,**kwargs):
    print("被装饰函数前要做的事情")
    ret=f(*args,**kwargs)
    print("被装饰函数后要做的事情")
    return ret
    return inner

    @wrapper #===>holiday=wrapper(holiday)
    def holiday(day):
    print("全体放假%s天" %(day))
    return "好好工作,会涨工资的"

    a=holiday(3)
    print(a)
     

    本文摘自:
    https://www.cnblogs.com/Eva-J/articles/7194277.html#_label4

     

  • 相关阅读:
    DOCTYPE和namespace
    由浅入深漫谈margin属性
    checkbox的完美用户体验
    XSL 属性模板的运用
    各浏览器里默认的表单控件(form controls)
    简单form标准化实例(二):语义结构
    zindex在IE中的迷惑(二)
    最简单的清除浮动的方法
    Default style sheet for HTML 4
    PNG透明背景图片的无界应用
  • 原文地址:https://www.cnblogs.com/gaoyuxia/p/11761237.html
Copyright © 2011-2022 走看看