• Python装饰器示例


    简单装饰器实现:

    import time
    #简单装饰器
    def show_time(f):
        #嵌套函数
        def inner():
            begin = time.time()
            f()
            end = time.time()
            print('spend %s'%(end-begin))
        return inner
    
    @show_time  #foo=show_time(foo)
    def foo():
        print('foo...')
        time.sleep(1)
    foo()

    不定长参数装饰器:

    #不定长参数,功能函数加参数
    def show_time(f):
        #嵌套函数
        def inner(*a,**b):
            begin = time.time()
            f(*a,**b)
            end = time.time()
            print('spend %s'%(end-begin))
        return inner
    
    @show_time  #foo=show_time(foo)
    def foo(*a,**b):
        sums=0
        for i in a:
            sums+=i
        print(sums)
        time.sleep(1)
    foo(1,2,3,4,5)

    装饰器函数加参数:

    #装饰器函数加参数
    def logger(flag):
        def show_time(f):
            #嵌套函数
            def inner(*a,**b):
                begin = time.time()
                f(*a,**b)
                end = time.time()
                print('spend %s'%(end-begin))
                #判断flag传参,之后所做的事情
                if flag == 'true':
                    print('哈哈哈哈')
            return inner
        return show_time
    
    #传参为true,则执行logger的内容
    @logger('tru1e')  #@show_time
    def foo(*a,**b):
        sums=0
        for i in a:
            sums+=i
        print(sums)
        time.sleep(1)
    foo(1,2,3,4,5)
  • 相关阅读:
    iOS开发之JSONKit
    iOS开发之XMPPFramework环境搭建和配置
    iOS开发之UICollectionViewController
    iOS开发之UITableViewController重写
    Object-c 开发之property
    Git使用
    解决CocoaPods下载慢的问题
    解决Linux下编译adb和fastboot问题
    解决fastboot刷机内存消耗问题
    sql
  • 原文地址:https://www.cnblogs.com/aresxin/p/9266077.html
Copyright © 2020-2023  润新知