我有一系列函数,它们使用装饰器来标记它们在管道中的函数“类别”(入口、进程、出口等)。例如:
@custom_task(task_type=TaskType.Ingress)
def my_task(<arg1>, <arg2>, ...):
...
下面是
custom_task
装饰器的简化版本:
def custom_task(task_type=TaskType.Unknown):
def wrapper(func):
def executor(*args, **kwargs):
func.__task_type__ = task_type
func(*args, **kwargs)
return executor
return wrapper
我知道必须首先运行代码才能创建/填充
__task_type__
属性。但是,有没有一种方法(使用检查或其他一些不起眼的库)来查看 task_type
函数的 custom_task
装饰器中 my_task
参数的 kwargs 默认值?跑步之前my_task
?谢谢。
只需将你的装饰器更改为:
def custom_task(task_type=TaskType.Unknown):
def decorator(func):
func.__task_type__ = task_type
return func
return decorator
然后你可以这样做:
@custom_task(task_type=TaskType.Ingress)
def my_task(<arg1>, <arg2>, ...):
...
print(my_task.__task_type__)