要完成任务:添加到集合,但不更改行为,不需要functools。相反,您只需要一个返回您的函数的简单函数。
试试这个:
schedule_registry = set()
def register_scheduler(func):
print(f"adding {func.__name__}")
schedule_registry.add(func)
return func
@register_scheduler
def foo():
print("running foo")
@register_scheduler
def bar():
print("running bar")
print(f"now running foo..., and registry has {len(schedule_registry)} items")
foo()
你应该看到:
adding foo
adding bar
now running foo..., and registry has 2 items
running foo