如何理解python中的裝飾器, 這篇文章就夠了

2022-06-10 05:27:08 字數 976 閱讀 4599

def log():

print('我是一些log資訊')

if __name__ == '__main__':

print(type(log))

log_func = log

log_func()

我是一些log資訊
def log():

log_info = '我是一些log資訊'

print(log_info)

if __name__ == '__main__':

f = log()()

我是一些log資訊
import functools

def log(func):

@functools.wraps(func)

print('name引數是: {}'.format(*args))

print('我在函式%s()被呼叫前做了一些事情' % func.__name__)

print('呼叫函式 %s():' % func.__name__)

return func(*args, **kwargs)

@log

def get_user_info(name):

print('函式{}的執行結果是: 獲取到使用者{}的資訊'.format(get_user_info.__name__, name))

if __name__ == '__main__':

get_user_info('xiaoming')

name引數是: xiaoming

我在函式get_user_info()被呼叫前做了一些事情

呼叫函式 get_user_info():

函式get_user_info的執行結果是: 獲取到使用者xiaoming的資訊

Python中的裝飾器理解

主要記住兩個例子就好 1.裝飾器含有不確定引數 需要注意 1.裝飾器的引數func為函式,裝飾器內部函式 deco的引數 args,kwargs為func函式傳入的不確定性變數。2.裝飾器以輸出的函式作為形參,返回內部自定義的函式 內部自定義的函式返回形參傳入的函式 所以可認為,裝飾器傳入函式,返回...

python中的裝飾器理解

python裝飾器 fuctional decorators 就是用於拓展原來函式功能的一種函式,目的是在不改變原函式名 或類名 的情況下,給函式增加新的功能。這個函式的特殊之處在於它的返回值也是乙個函式,這個函式是內嵌 原 函式的函式。之前拓展函式的做法是侵入原函式進行拓展修改,例如 原始函式 i...

python裝飾器理解 python裝飾器理解

裝飾器 在不改變原函式的 和呼叫方法的基礎上,給原函式增加額外的功能 理解宣告 為了方便理解,以下例子採用最簡潔的函式和新增的功能 給原函式新增乙個執行時間 import time def timer func def inner func return inner timer func timer...