python 編寫通用裝飾器

2021-08-20 11:25:39 字數 668 閱讀 1421

需求:假如我們需要將一些方法加入日誌,在python這時候就需要裝飾器,而每個方法的引數,返回值各不相同,這時候,我們就需要編寫乙個通用的裝飾器來將日誌引入進來(測試版)

'''

通用裝飾器

'''def func(functionname):

def func_in(*args, **kwargs):

print("-----記錄日誌-----")

ret = functionname(*args, **kwargs)

return ret

return func_in

測試**如下:分別是三種不同的方法進行呼叫

@func

def test1():

print("test1")

return "haha"

@func

def test2():

print("test2")

@func

def test3(a):

print("test3 value is %d" % a)

執行結果如下:

通用裝飾器

通用裝飾器 可以裝飾任意引數的函式 無引數也可以 重點 1.閉包中內部函式的引數型別 2.內部函式的返回值上 需求 給函式func1增加日誌功能 不能修改原始碼 import time def funcout func def funcinfo args,kwargs log func return...

python 通用裝飾器,帶有引數的裝飾器,

使用裝飾器對有返回值的函式進行裝飾 def func functionname print func 1 def func in print func in 1 x functionname 儲存返回來的hahah print func in 2 return x print func 2 retu...

python裝飾器 Python 裝飾器

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...