python-复盘-装饰器应用场景大总结

python-复盘-装饰器应用场景大总结
最新回答
二到无穷大

2020-05-23 11:03:47

装饰器能有助于检查某个人是否被授权去使用一个web应用的端点(endpoint)。它们被大量使用于Flask和Django web框架中。这里是一个例子来使用基于装饰器的授权:

日志是装饰器运用的另一个亮点。这是个例子:

我敢肯定你已经在思考装饰器的一个其他聪明用法了。

带参数的装饰器是典型的闭包函数 (略,参考我之前文章)

我们回到日志的例子,并创建一个包裹函数,能让我们指定一个用于输出的日志文件。

现在我们有了能用于正式环境的 logit 装饰器,但当我们的应用的某些部分还比较脆弱时,异常也许是需要更紧急关注的事情。比方说桥兆有时你只想打日志到一个文件。而有时你想把引起你注意的问题发送到一个email,同时蔽戚也保留日志,留个记录。这是一个使用继承的场景,但目前为止我们只看到过用来构建装饰器的宏消陵函数。

幸运的是,类也可以用来构建装饰器。那我们现在以一个类而不是一个函数的方式,来重新构建logit。

具体再参考我 之前文章 ,廖神讲解的更清晰