python3中的cached_property函数是什么?

冰川箭仙
发布: 2025-12-01 22:42:06
原创
225人浏览过
cached_property在Python 3.8+中用于将方法结果缓存为属性,首次访问时计算并存储结果,后续直接读取缓存,适用于高成本且不变的属性获取,如复杂计算或I/O操作,相比property避免重复执行,提升性能。

python3中的cached_property函数是什么?

cached_property 是 Python 3.8+ 标准库 functools 中提供的一个装饰器,用于将类的方法缓存为属性。它可以把一个方法的返回值“记住”,在第一次访问时计算,之后直接返回缓存结果,避免重复计算开销。

作用与使用场景

当某个类属性的获取代价较高(比如涉及网络请求、复杂计算或文件读取),但又希望像普通属性一样通过点号访问时,cached_property 就非常有用。它结合了方法的惰性求值和属性的访问方式,并且只计算一次。

例如:

import functools
import time

class DataProcessor:
    @functools.cached_property
    def result(self):
        print("正在执行耗时操作...")
        time.sleep(2)
        return "处理完成"

dp = DataProcessor()
print(dp.result) # 第一次:打印提示并等待
print(dp.result) # 第二次:直接返回,无延迟

Android 基础知识入门 pdf版
Android 基础知识入门 pdf版

Android 基础知识入门 pdf,介绍什么是Android、Android可以完成的功能、Android架构、Android应用程序框架、Android函数库等,从开始安装Android开始,到环境配置,到一步步编写复杂的应用程序,本书将带你了解基础但有内涵的Android入门知识。

Android 基础知识入门 pdf版 0
查看详情 Android 基础知识入门 pdf版

与普通 property 的区别

property 每次访问都会重新调用方法,不缓存结果。cached_property 只在第一次调用时执行方法,后续访问直接返回已计算的值。适合用于不可变的、高成本的属性计算。

注意事项

缓存值存储在实例的 __dict__ 中,键名就是方法名。这意味着一旦被访问过,即使对象状态变化,值也不会自动更新。如果需要刷新缓存,可以手动从 __dict__ 中删除对应键:del dp.result

基本上就这些。对于需要“算一次,用多次”的属性,cached_property 是简洁高效的解决方案。

立即学习Python免费学习笔记(深入)”;

以上就是python3中的cached_property函数是什么?的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号