返回顶部
首页 > 资讯 > 后端开发 > Python >Python类属性的延迟计算
  • 151
分享到

Python类属性的延迟计算

类属Python 2022-06-04 18:06:01 151人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。 优点 构造一个延迟计算属性的主要目的是为了提升性能 实现

所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。

优点

构造一个延迟计算属性的主要目的是为了提升性能

实现


class LazyProperty(object):
  def __init__(self, func):
    self.func = func

  def __get__(self, instance, owner):
    if instance is None:
      return self
    else:
      value = self.func(instance)
      setattr(instance, self.func.__name__, value)
      return value


import math


class Circle(object):
  def __init__(self, radius):
    self.radius = radius

  @LazyProperty
  def area(self):
    print 'Computing area'
    return math.pi * self.radius ** 2

  @LazyProperty
  def perimeter(self):
    print 'Computing perimeter'
    return 2 * math.pi * self.radius

说明

定义了一个延迟计算的装饰器类LazyProperty。Circle是用于测试的类,Circle类有是三个属性半径(radius)、面积(area)、周长(perimeter)。面积和周长的属性被LazyProperty装饰,下面来试试LazyProperty的魔法:


>>> c = Circle(2)
>>> print c.area
Computing area
12.5663706144
>>> print c.area
12.5663706144

在area()中每计算一次就会打印一次“Computing area”,而连续调用两次c.area后“Computing area”只被打印了一次。这得益于LazyProperty,只要调用一次后,无论后续调用多少次都不会重复计算。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Python类属性的延迟计算

本文链接: https://lsjlt.com/news/14117.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python类属性的延迟计算
    所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。 优点 构造一个延迟计算属性的主要目的是为了提升性能 实现 ...
    99+
    2022-06-04
    类属 Python
  • Java8实战之Stream的延迟计算
    目录一、函数式编程1.1 示例一:方法中没有任何操作会修改现有结构1.2 实例二:“尾-递”迭代二、科里化三、函数式数据结构——持久化的四、Stream的延迟计算4.1 列表接口4....
    99+
    2024-04-02
  • 浅谈JavaScript 中的延迟加载属性模式
    目录一、前言二、按需属性模式三、凌乱的延迟加载属性模式四、类的唯一自己的延迟加载属性模式五、对象字面量的延迟加载属性模式六、结论一、前言 传统上,开发人员在 JavaScript 类...
    99+
    2024-04-02
  • Vue的计算属性
    通常我们会在模板中绑定表达式,模板是用来描述视图结构的。如果模板的表达式存在过多的逻辑,就会变得臃肿不堪,可维护和可读性就会较差,因此,为了简化逻辑,当某个属性值依赖于其他属性的值时,就可以使用计算属性来看一个简单的计算属性的例子<d...
    99+
    2023-06-03
  • JavaScript中延迟加载属性的原理和用法
    本篇内容介绍了“JavaScript中延迟加载属性的原理和用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • Vue3计算属性和异步计算属性方式
    目录一、简要介绍二、计算属性核心源码 三、异步计算属性核心源码一、简要介绍 不论是计算属性,还是异步计算属性,都是依托于Vue3整体的响应式原理实现的。其核心依旧是Reac...
    99+
    2024-04-02
  • 一文读懂JavaScript 中的延迟加载属性模式
    传统上,开发人员在 JavaScript 类中为实例中可能需要的任何数据创建属性。对于在构造函数中随时可用的小块数据来说,这不是问题。但是,如果在实例中可用之前需要计算某些数据,您可...
    99+
    2024-04-02
  • python如何实施类似延迟的呼叫
    这篇文章给大家分享的是有关python如何实施类似延迟的呼叫的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实施类似延迟的呼叫Golang中有一种延迟通话的机制。 关键字为defer,如下所示myfunc的调用将在...
    99+
    2023-06-27
  • Hibernate集合类型的延迟加载特性介绍
    本篇内容主要讲解“Hibernate集合类型的延迟加载特性介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate集合类型的延迟加载特性介绍”吧!Hibernate集合类型的延迟加载...
    99+
    2023-06-17
  • Vue监听属性和计算属性
    目录一、watch监听属性 1.购物车 2.全选与取消全选 二、计算属性 1.computed 2.methods 3.setter 一、watch监听属性 这个属性用来监视某个数...
    99+
    2024-04-02
  • Vue中的计算属性与监听属性
    目录一、为什么要使用计算属性什么是计算属性二、计算属性和方法的区别1、区别2、计算属性使用场景三、修改计算属性的值总结四、监听属性1、监听普通属性2、监听属性和计算属性的区别3、监听...
    99+
    2024-04-02
  • Vue 计算属性 computed
    目录1、基础例子 2、计算属性缓存 vs 方法 3、计算属性的 setter 前言: 一般情况下属性都是放到data中的,但是有些属性可能是需要经过一些逻辑计算后才能得出来,那么我们...
    99+
    2024-04-02
  • Python性能提升之延迟初始化
    所谓类属性的延迟计算就是将类的属性定义成一个property,只在访问的时候才会计算,而且一旦被访问后,结果将会被缓存起来,不用每次都计算。构造一个延迟计算属性的主要目的是为了提升性能 property 在...
    99+
    2022-06-04
    初始化 性能 Python
  • 计算机网络中网站性能延迟加载图像的示例分析
    这篇文章给大家分享的是有关计算机网络中网站性能延迟加载图像的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。由于图片是web上最流行的内容类型之一,因此网站的页面加载时间很容易成为一个问题。即使经过适当的优...
    99+
    2023-06-09
  • python如何实现类似defer的延迟调用
    这篇文章给大家分享的是有关python如何实现类似defer的延迟调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现类似 defer 的延迟调用在 Golang 中有一种延迟调用的机制,关键字是 defer,...
    99+
    2023-06-27
  • CSS属性实现响应式图片延迟加载的方法
    CSS属性实现响应式图片延迟加载的方法在网页开发中,经常会遇到需要加载大量图片的情况,特别是在移动设备上。为了提高页面的加载速度和用户体验,延迟加载(lazy loading)图像成为一种常见的优化方法。延迟加载是指在页面加载时,只加载可见...
    99+
    2023-11-18
    响应式 延迟加载 CSS属性
  • 阿里云内存服务器高性能、低延迟的云计算解决方案
    阿里云内存服务器是阿里云推出的一种高性能、低延迟的云计算服务。该服务利用阿里云的云计算技术和大规模存储设备,为用户提供高效、稳定的数据存储和处理服务。本文将详细介绍阿里云内存服务器的特点、优势以及使用方法。 阿里云内存服务器的特点:高性能:...
    99+
    2023-10-29
    阿里 高性能 内存
  • 揭秘VUE计算属性的奥秘:掌握计算属性的技巧与窍门
    一、Vue计算属性的定义与作用: Vue计算属性是一种特殊的属性,它允许您通过一个函数来计算并返回一个新的值。计算属性的值可以依赖于其他属性的值,当这些依赖的属性发生变化时,计算属性的值也会自动更新。计算属性是一个非常有用的工具,它可以...
    99+
    2024-02-27
    Vue、计算属性、技巧、窍门
  • Vue中的计算属性介绍
    目录1、什么是计算属性2.计算属性的语法 3.举例 1、什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。 例...
    99+
    2024-04-02
  • vue中的计算属性传参
    目录vue计算属性传参我们来看看下面的示例vue计算属性传参,根据值不同,渲染相应的内容业务描述vue计算属性传参 最近很多小伙伴问到,计算属性怎么做到像普通函数一样传参呢? 针对这...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作