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

     

  • 相关阅读:
    sqlserver 表操作 SQL篇
    C#知识点汇总
    DDL
    sqlserver2008简介
    面向对象继承
    IO文件流
    【帅刺猬课堂】Winform中使用WPF的UserControl
    KS Gantt甘特图控件通过递归加载无限层级的数据
    Office 每次打开需要重新配置的问题修复方法
    扩展方法
  • 原文地址:https://www.cnblogs.com/gaoyuxia/p/11761237.html
Copyright © 2011-2022 走看看