虽然我认为自己是一个相当能够熟练使用Python编程的人,但是有一点是我从未能够理解的,那就是装饰器。
我知道它们是什么(表面上),我已经阅读了教程、示例、Stack Overflow上的问题,我也理解语法,可以编写自己的代码,偶尔会使用@classmethod和@staticmethod,但是我从来没有想到要在自己的Python代码中使用装饰器来解决问题。我从未遇到过这样的问题,即:“嗯...这看起来像是一个需要用装饰器来解决的工作!”
因此,我想知道大家是否可以提供一些使用装饰器解决问题的实例,希望我能有一个“啊哈!”的时刻并真正理解他们。
functools.lru_cache
,它做的正是Peter所说的,自从2011年2月发布的Python 3.2版本以来一直可用。 - Ignatius