python裝飾器使用

2021-08-02 11:25:01 字數 1270 閱讀 1512

根據裝飾器有參/無參,函式有參/無參,組合共4種

無參裝飾器 – 包裝無引數函式

不需要針對引數進行處理和優化

def decorator(func):

# 自定義處理邏輯

pass

@decorator

def foo():

pass

這樣呼叫foo()的時候等價於

foo = decorator(foo)

foo()

無參裝飾器 - 包裝有參函式

def decorator(func):

# 自定義處理邏輯

# func(*kw, **args) 函式呼叫

pass

@decorator

def foo(param):

pass

這樣呼叫foo(param)的時候等價於

foo = decorator(foo)

foo(param)

有參裝飾器 - 包裝無參函式

def decorator(args):

# 自定義處理邏輯

# func() 函式呼叫

pass

@decorator(args)

def foo():

pass

這樣呼叫foo()的時候等價於

foo = decorator(args)(foo)

foo()

有參裝飾器 - 包裝有參函式

def decorator(args):

# 自定義處理邏輯

# func(*kw, **args) 函式呼叫

pass

@decorator(args)

def foo(param):

pass

這樣呼叫foo(param)的時候等價於

foo = decorator(args)(foo)

foo(param)

裝飾器使用

裝飾器本質上是乙個 python 函式或類,它可以讓其他函式或類在不需要做任何 修改的前提下增加額外功能,裝飾器的返回值也是乙個函式 類物件。它經常用於有切面需求的場景,比如 插入日誌 效能測試 事務處理 快取 許可權校驗等場景,裝飾器是解決這類問題的絕佳設計。有了裝飾器,我們就可以抽離出大量與函式...

python函式裝飾器使用詳解

def hint func def args,kwargs print is running format func.name return func args,kwargs hint defhello print hello 我們現在對hello已經進行了裝飾,當我們呼叫hello 時,我們可以看...

裝飾器使用案例

import numpy as np import pandas as pd import matplotlib.pyplot as plt import math import datetime from pandas import dataframe,series from copy impor...