【函数装饰器】 - 基础用法篇

2025 年 1 月 17 日 星期五(已编辑)
/
3

【函数装饰器】 - 基础用法篇

pyhton的高级用法之一,能动态扩展或修改函数行为


基础用法

构造

def funcA(func):
    def sub(*arg):
        '''
        添加功能
        '''
        return func(*arg) #如果被修饰函数有返回值 再该函数内返回
    return sub  #返回该函数

使用

# funcB=funcA(funcB)
@funcA
def funcB():
    ...

# 带参数
# funcB = funcA(a)(funcB)
@funcA(a)
def funcB():
    ...

类装饰器

from typing import Any
class ClassA:
    def __init__(self, func):
        self.func = func
    
    def __call__(self, *args: Any, **kwds: Any) -> Any:
        print('__call__')
        ret = self.func(*args, **kwds)
        return ret

@ClassA
def funcB():
    print('func B')

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...