Python将一个函数传递给一个函数:为什么要使用装饰器?

时间:2020-05-10 06:56:11

标签: python python-decorators

为什么我们只能使用1层功能,所以为什么要使用具有2层功能的装饰器?

例如:

[item.strip() for entry in ...

现在,time_func()可以接受任何函数并像装饰器一样完成其工作。我想念什么?

1 个答案:

答案 0 :(得分:0)

修饰器从定义上讲接受一个函数,并返回一个新函数来替换修饰后的函数。您的函数不执行此操作,您的函数仅接受一个函数并调用它;那不是装饰器,那只是函数接受回调的行为。

关于为什么要使用装饰器的原因,是在不向函数本身写入代码的情况下向函数添加功能,既可以使装饰的函数更简单,又可以使装饰行为可重复使用。唯一的其他选择是将调用程序的负担放在每个调用函数的包装上,但这显然也不是很明智。