python帶參數和不帶參數裝飾器,python帶參數裝飾

來源:互聯網
上載者:User

python帶參數和不帶參數裝飾器,python帶參數裝飾

http://blog.csdn.net/pipisorry/article/details/41902599

對於無參數的裝飾器,其裝飾器函數的參數是要被裝飾的函數對象名;

對於有參數的裝飾器在調用時使用的是應用的參數,@timeStumpFunc_args(argv)的argv,已不再是要被裝飾的函數對象名,所以必須在內部再定義一個函數getfunc()來接收要被裝飾的函數對象。

#!/usr/bin/env python# coding=gbk"""__title__ = '帶參數和不帶參數的timeStump'__author__ = 'pi'__mtime__ = '2014.12.12'"""from time import ctimedef timeStumpFunc(func):    """time stump decorator of func 不帶參數的時間戳記函數"""    def wrappedFunc(*nkw):        print("start_time %s" % ctime())        func(*nkw)        print("end_time %s" % ctime())    return wrappedFuncdef timeStumpFunc_args(args):    """time stump decorator of func 不帶參數的時間戳記函數"""    print "timeStump for function %s" % args    def getFunc(func):        def wrappedFunc(*nkw):            print("start_time %s" % ctime())            func(*nkw)            print("end_time %s" % ctime())        return wrappedFunc    return getFunc@timeStumpFunc# @timeStumpFunc_args('do_sth')def do_sth(*nkw):    print "%s" % nkwif __name__ == '__main__':    do_sth('i you love')



from:http://blog.csdn.net/pipisorry/article/details/41902599

ref:Python裝飾器:簡單裝飾,帶參數裝飾與類裝飾器

http://outofmemory.cn/code-snippet/1107/python-achieve-carry-parameter-decorator


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.