zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Linux普通用户登录后,命令行提示:-bash-4.1$ ,原因分析及解决
    ps命令
    Linux命令ping
    Linux 系统管理 : last 命令详解
    Linux命令head
    Linux more与less命令
    Mac下开启Chrome非安全模式
    mac host 修改
    mac 电脑记
    a的样式顺序
  • 原文地址:https://www.cnblogs.com/aresxin/p/9266077.html
Copyright © 2011-2022 走看看