首页 > Python 的 property 修饰器并不是很好用?

Python 的 property 修饰器并不是很好用?

我在用 Python 中的 property 修饰器的时候并没有发现特别实用,我在类中使用 property 修饰某个属性,之后多次调用该属性,发现这个函数会多次运行,并没有一个缓存或者保存的机制,大家这么看?


这个不是用来做缓存的, 是为了你能够动态的获取某个属性,要缓存可以考虑用functool.lru 修饰器


那万一有些时候结果就是会不一样 那岂不是要哭

解决方法之一:
https://docs.python.org/3/library/functools.html#functools.lru_cache

另外 这一般不叫缓存 叫 memoization


个人理解,修饰器是用来修饰的,修饰(约束)方法的行为。你可以以单例模式为例,看看修饰器方式的单例模式,这个修饰器就是对所修饰的方法说:“你,要满足我所约束的特点(这里就是指单例)。”


property顾名思义只是类比于其他语言的OOP定义了一个数据访问接口而已,其本身并没有提供变量记忆机制。
至于你说的功能你可以自己实现,并不很难。参见django.utils的cached_property

【热门文章】
【热门文章】