• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > Python的property修饰器并不是很好用?

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

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了python property,python3 property,python中的property,python property函数,python property用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:Python 的 property 修饰器并不是很好用?
描述:

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


解决方案1:

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

解决方案2:

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

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

另外 这一般不叫缓存 叫 memoization

解决方案3:

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

解决方案4:

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


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • python爬虫(python)关于property
  • pythonproperty的用法
  • Python的property修饰器并不是很好用?

相关文章

  • 2017-06-07 (python)django怎么生成sitemap
  • 2017-06-07 矩阵乘法的分治算法实现思路
  • 2017-06-07 python链接sql取出来的数值跟变量如何优化。
  • 2017-06-07 laravel框架中的carbon::now和php原生的time有什么区别
  • 2017-06-07 七牛服务器怎么了
  • 2017-06-07 用javascript的接口上传图片能不能控制图片的尺寸
  • 2017-06-07 下面的shell是什么意思?
  • 2017-06-07 刷新预取功能中的「文件预取」githubrelease地址报错
  • 2017-06-07 Python语言,Flask框架,有那些可用的消息队列,zeromq效率怎么样,持久化问题如何解决?
  • 2017-06-07 PHP解析PDF转换成在线文档

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ios上传图片到7牛时,如何才能生成token?
    • Python爬虫求助
    • 怎么理解下面这段代码,是关于Splaytrees的
    • 李白喝酒问题的算法
    • 有大神会使用bitcoind吗?
    • (shell)github和coding切换的问题
    • 泡泡堂如何刷段这段代码如何pythonic,数据库查询
    • 请问张柏芝和李亚鹏什么关系请问下面代码使用了什么数据结构?
    • sublimetext3目录怎么不显示文件夹图标?
    • Laravel时间显示问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有