python裝飾器兩種方式

2022-05-24 13:09:12 字數 1751 閱讀 6573

1.普通裝飾器

def

decorate(fun):

'''普通裝飾器

:param fun:

:return:

'''def inner(*args,**kwargs):

print('

呼叫裝飾器之前')

fun(*args, **kwargs)

print('

呼叫裝飾器之後')

return

inner

@decorate

#method=decorate(method)

defmethod01(a,b):

print('

兩個引數的和是

2.增強裝飾器有名帶參裝飾器

def

dynamic_report(target):

'''帶參裝飾器

:param target: 裝飾器傳進來的引數

:return:

'''def

decorate(fun):

def inner(*args,**kwargs):

print('

呼叫時候傳進來的引數

',target)

fun(*args,**kwargs)

print('

呼叫後傳進來的引數

',target)

return

inner

return

decorate

@dynamic_report(

'我是裝飾器傳進來的')

defmethod(a,b):

print('

method方法

'''帶參裝飾器

:param target: 裝飾器傳進來的引數

:return:

'''def

decorate(fun):

def inner(*args,**kwargs):

print('

呼叫時候傳進來的引數

',target01,target02)

fun(*args,**kwargs)

print('

呼叫後傳進來的引數

',target01,target02)

return

inner

return

decorate

@dynamic_report(

'zxb

','zxl')

defmethod(a,b):

print('

method方法

Python 兩種裝飾器

目錄 帶引數的裝飾器 函式 類裝飾器 裝飾器 decorators 是 python 的乙個重要部分。簡單地說 他們是修改其他函式的功能的函式。他們有助於讓我們的 更簡短,也更pythonic python範兒 來想想這個問題,難道 wraps不也是個裝飾器嗎?但是,它接收乙個引數,就像任何普通的函...

python帶引數裝飾器的兩種寫法

前言 最近在實現乙個裝飾器的過程中發現了乙個很有意思的地方,在部落格裡面分享出來 不同的寫法 三層函式巢狀,實現了可傳引數的乙個裝飾器。import logging import functools deflogger msg none 日誌 defdector func functools.wra...

Python裝飾器的兩種使用心得

def decorator func def inner info print inner func info return inner decorator def show info info print info show info hello 裝飾器在裝飾函式的時候由於返回的是inner的函式...