Python函式的裝飾器修復技術( wraps)

2022-05-20 21:18:39 字數 1013 閱讀 4760

函式的裝飾器修復技術,可使被裝飾的函式在增加了新功能的前提下,不改變原函式名稱,還繼續使用原函式的注釋內容;

方便了上下文環境中不去更改原來使用的函式地方的函式名;

使用方法:

from functools import

wraps

def 裝飾器(func): #

寫裝飾器

@wraps(func) #

使用裝飾器修復技術

def inner(*args,**kwargs):

print('

函式之前執行的**')

func(*args,**kwargs)

print('

函式之後執行的**')

return

inner

@裝飾器

#加裝飾器

defouter(a):

'''函式的作用注釋:被修飾的原函式

:param a:引數a解釋

:return:函式返回值解釋

'''def

inner():

print('

內部函式

',a)

return

inner()

outer('你好

')print("

列印函式名稱:

",outer.__name__) #

列印函式名稱

print('

列印函式注釋:

',outer.__doc__) #

列印函式注釋

執行結果:

函式之前執行的**

函式之後執行的**

列印函式名稱: outer

列印函式注釋:

函式的作用注釋:被修飾的原函式

:param a:引數a解釋

:return

:函式返回值解釋

可以看出@wraps體現出的作用,方便了上下文環境中不去更改原來使用的函式地方的函式名

python修復不了 python中裝飾器修復技術

python裝飾器 wraps作用 修復被裝飾後的函式名等屬性的改變 python裝飾器 decorator 在實現的時候,被裝飾後的函式其實已經是另外乙個函式了 函式名等函式屬性會發生改變 為了不影響,python的functools包中提供了乙個叫wraps的decorator來消除這樣的 寫乙...

python裝飾器 函式裝飾器,類裝飾器

只要實現此 模式,這個obj就叫乙個裝飾器 參考 函式裝飾器 例子 def decorator func def inner args,kwargs print before.res func args,kwargs print after.return res return inner decor...

python 裝飾器 函式裝飾器 類裝飾器

python函式裝飾器和類裝飾器筆記.usr bin env python coding utf 8 author ivan file decorators.py version from functools import wraps 裝飾器 目的是為了給函式新增附加功能 1.不帶引數裝飾器 此方式...