import inspect
from functools import wraps
def check(func):
@wraps(func)
def wrapper(*args,**kwargs):
'''
doc of wrapper
'''
print('doc is ',wrapper.__doc__)
print(wrapper.__name__,'is running')
sig = inspect.signature(func)
params = sig.parameters
types = list(params.values())
for i,k in enumerate(args):
param = types[i]
if not isinstance(k,param.annotation):
print('Type of parameters were wrong')
raise TypeError
ret = func(*args,**kwargs)
return ret
return wrapper
@check
def add(x:int = 5, y:int =6)->int:
'''
doc of add
'''
return x+y
add()
装饰器实现类型检查
最新推荐文章于 2024-07-22 15:15:29 发布