zoukankan      html  css  js  c++  java
  • 装饰器的语法糖

    # _*_ coding: utf-8 _*_

    # 装饰器的语法糖

    # @装饰器的名字:要在被装饰对象正上方单独一行写上

    import time
    # 引用time内置函数

    def timmer(func):

    def wrapper(*args, **kwargs):
    start = time.time()
    res = func(*args, **kwargs)
    stop = time.time()
    print('Run time is %s' %(stop - start))
    return res
    return wrapper

    #(new)index = timmer((旧)index的内存地址 = func)
    # index的内存地址 = func
    @timmer
    def index():
    print('Welcome to index page')
    time.sleep(1)

    @timmer#home = timmer(home)
    def home(name):
    print('welcome %s to home page' %name)
    time.sleep(1)
    return 888

    index()
    res = home('oOC')
    print(res)

    ####无参装饰器模版####
    def outter(func):
    def wrapper(*args,**kwargs):
    #在调用函数前加功能
    res=func(*args,**kwargs) #调用被装饰的也就是最原始的那个函数
    #在调用函数后加功能
    return res
    return wrapper


    # ////////////////////////////////////////////////////

    @outter #index=outter(index) #index=wrapper
    def index():
    print('welcome to index page')
    time.sleep(3)

    index()

  • 相关阅读:
    BZOJ2111: [ZJOI2010]Perm 排列计数
    BZOJ1951: [Sdoi2010]古代猪文
    组合数取模
    BZOJ2226: [Spoj 5971] LCMSum
    BZOJ2820: YY的GCD
    数据结构讲题选做
    解题:HAOI 2015 按位或
    解题:SHOI 2006 有色图
    解题:洛谷 4986 逃离
    解题:HNOI 2013 Cards
  • 原文地址:https://www.cnblogs.com/OutOfControl/p/9714826.html
Copyright © 2011-2022 走看看