import time
def wrap(func):
print("\n")
print("装饰器内部处理逻辑.... ")
def inner(*args, **kwargs):
fun_name = func.__name__
num = len(args)
params = ""
print(f"fun_name is {fun_name}")
print(f"params len is {num}")
print(f"args is {args}")
print(f"kwargs.keys() is {kwargs.keys()}")
if num > 0:
params = '"{0}"'.format(args[0])
if num > 1:
for i in range(1, len(args)):
params = '{0}, "{1}"'.format(params, args[i])
for k in kwargs.keys():
if isinstance(kwargs[k], str):
params = '{0}, {1}="{2}"'.format(params, k, kwargs[k])
else:
params = "{0}, {1}={2}".format(params, k, kwargs[k])
params = "({0})".format(params)
print(f"params is {params}")
print("装饰器内部处理逻辑结束 \n")
return "{0} {1}".format(fun_name, params), 0, func(*args,**kwargs)
return inner
@wrap
def cost(param1, param2, param3, param4):
print("执行函数内部逻辑")
return "cost_fuction"
if __name__ == "__main__":
result = cost("123", "456", "789", {"name":"koukou"})
print(result)
python 装饰器
最新推荐文章于 2024-03-04 15:55:42 发布