zoukankan      html  css  js  c++  java
  • Python基础---装饰器

    一、装饰器的定义:

    给函数加上一层包装层,以添加额外的处理
    

    二、装饰器的原则

    1、不修改被修饰函数的源代码
    2、不修改被修饰函数的调用方式
    

    三、示例

    import time
    
    def timer(func):                    #func的实参是index
        def wrapper(*args,**kwargs):
            start_time=time.time()      #定义一个开始时间
            func(*args,**kwargs)        #index()调用的是index()函数,先睡眠三秒,打印print("index运行时间")
            stop_time=time.time()  #定义一个结束时间
            print('运行时间为%s' %(stop_time-start_time))
        return wrapper    #wrapper函数的内存地址
    
    
    @timer     #=====index=timmer(index)
    def index():
        time.sleep(3)
        print("index运行时间")
    
    def init(func):
        def wrapper(*args,**kwargs):
            res=func(*args,**kwargs)
            next(res)
            return res
        return wrapper
        
    
    @init       #装饰器的调用方法===>get=init(get)
    def get():
        while True:
            url=yield
            res=urlopen(url).read()
            print(res)
    
    g=get()
    g.send("http://www.baidu.com")
    g.send('http://www.python.org')
    g.send('http://www.163.com')
    
  • 相关阅读:
    poj3268(Silver Cow Party)最短路
    关于Phaser
    关于StampedLock
    关于AQS
    关于Exechanger
    关于Semaphore
    关于CyclicBarrier
    关于CountDownLatch
    关于BlockingQueue
    关于ThreandLocal
  • 原文地址:https://www.cnblogs.com/baomanji/p/6701983.html
Copyright © 2011-2022 走看看