python用類寫裝飾器

代碼示例
# -*- coding:utf-8 -*-
from functools import wraps
from datetime import datetime

#類的裝飾器寫法,日志
class log(object):
    def __init__(self, logfile='c:\out.log'):
        self.logfile = logfile

    def __call__(self, func):
        @wraps(func)
        def wrapped_func(*args, **kwargs):                     
            self.writeLog(*args, **kwargs)    # 先調(diào)用 寫入日志         
            return func(*args, **kwargs)     # 正式調(diào)用主要處理函數(shù)       
        return wrapped_func

   #寫入日志    
    def writeLog(self, *args, **kwargs):
        time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        log_str = time+' 操作人:{0[0]} 進(jìn)行了【{0[1]}】操作'.format(args)           
        with open(self.logfile, 'a',encoding='utf8') as file:
            file.write(log_str + '\n')

@log()
def myfunc(name,age):
    print('姓名:{0},年齡:{1}'.format(name,age))

if __name__ == '__main__':
    myfunc('小白', '查詢')
    myfunc('root', '添加人員')
    myfunc('小小', '修改數(shù)據(jù)')

日志己保存于指定位置,打開內(nèi)容如下:
log.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,996評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,268評(píng)論 6 342
  • 我的乖乖我的娘, 重慶小伙真叫棒! 改革致富創(chuàng)新路, 煎鍋擺在街道旁。 不用煤電不用火, “火爐”優(yōu)勢(shì)俺用上。 出...
    一葉知秋99閱讀 421評(píng)論 3 4
  • 燭火秋千白雪絨 炙陽塵土夜街空 萬般才華皆散盡 落入凡間嘆梧桐 大學(xué)時(shí)自己寫的詩(shī)
    王峰_2fce閱讀 89評(píng)論 0 0

友情鏈接更多精彩內(nèi)容