【函数装饰器】 - 基础用法篇
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')