为什么我们只能使用1层功能,所以为什么要使用具有2层功能的装饰器?
例如:
[item.strip() for entry in ...
现在,time_func()可以接受任何函数并像装饰器一样完成其工作。我想念什么?
答案 0 :(得分:0)
修饰器从定义上讲接受一个函数,并返回一个新函数来替换修饰后的函数。您的函数不执行此操作,您的函数仅接受一个函数并调用它;那不是装饰器,那只是函数接受回调的行为。
关于为什么要使用装饰器的原因,是在不向函数本身写入代码的情况下向函数添加功能,既可以使装饰的函数更简单,又可以使装饰行为可重复使用。唯一的其他选择是将调用程序的负担放在每个调用函数的包装上,但这显然也不是很明智。