最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python類屬性的延遲計(jì)算

 更新時(shí)間:2016年10月22日 10:15:09   作者:j_hao104  
這篇文章主要為大家詳細(xì)介紹了Python類屬性的延遲計(jì)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

所謂類屬性的延遲計(jì)算就是將類的屬性定義成一個(gè)property,只在訪問的時(shí)候才會(huì)計(jì)算,而且一旦被訪問后,結(jié)果將會(huì)被緩存起來,不用每次都計(jì)算。

優(yōu)點(diǎn)

構(gòu)造一個(gè)延遲計(jì)算屬性的主要目的是為了提升性能

實(shí)現(xiàn)

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

說明

定義了一個(gè)延遲計(jì)算的裝飾器類LazyProperty。Circle是用于測(cè)試的類,Circle類有是三個(gè)屬性半徑(radius)、面積(area)、周長(zhǎng)(perimeter)。面積和周長(zhǎng)的屬性被LazyProperty裝飾,下面來試試LazyProperty的魔法:

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

在area()中每計(jì)算一次就會(huì)打印一次“Computing area”,而連續(xù)調(diào)用兩次c.area后“Computing area”只被打印了一次。這得益于LazyProperty,只要調(diào)用一次后,無論后續(xù)調(diào)用多少次都不會(huì)重復(fù)計(jì)算。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python還能這么玩之用Python做個(gè)小游戲的外掛

    Python還能這么玩之用Python做個(gè)小游戲的外掛

    玩過電腦游戲的同學(xué)對(duì)于外掛肯定不陌生,但是你在用外掛的時(shí)候有沒有想過外掛怎么制作出來的呢?現(xiàn)在來看一下怎么制作一個(gè)外掛,首先說下,這里的游戲外掛的概念,和那些大型網(wǎng)游里的外掛可不同,不能自動(dòng)打怪,主要為了提高一下編程技術(shù),需要的朋友可以參考下
    2021-06-06
  • Sanic框架Cookies操作示例

    Sanic框架Cookies操作示例

    這篇文章主要介紹了Sanic框架Cookies操作,結(jié)合實(shí)例形式分析了Sanic框架cookie讀取、寫入及刪除等簡(jiǎn)單操作技巧,需要的朋友可以參考下
    2018-07-07
  • Pytest框架 conftest.py文件的使用詳解

    Pytest框架 conftest.py文件的使用詳解

    conftest.py是pytest特有的本地測(cè)試配置文件,既可以用來設(shè)置項(xiàng)目級(jí)別的fixture,也可以用來導(dǎo)入外部插件,本文給大家介紹Pytest框架 conftest.py文件的使用,感興趣的朋友一起看看吧
    2022-06-06
  • python類的繼承鏈實(shí)例分析

    python類的繼承鏈實(shí)例分析

    在本篇文章里小編給大家整理了一篇關(guān)于python類的繼承鏈分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-04-04
  • Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能

    Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能

    這篇文章主要介紹了Python實(shí)現(xiàn)鼠標(biāo)自動(dòng)在屏幕上隨機(jī)移動(dòng)功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。還等什么?一起跟隨小編過來看看吧
    2020-03-03
  • 安裝Python后IDA中找不到Python模塊的問題解決

    安裝Python后IDA中找不到Python模塊的問題解決

    有天在一臺(tái)新PC上安裝完IDA和Python之后,啟動(dòng)IDA報(bào)找不到Python模塊的問題,本文就詳細(xì)的介紹一下解決方法,感興趣的可以了解一下
    2021-10-10
  • 詳解Python Pyside6如何準(zhǔn)確嵌入可視化數(shù)據(jù)圖表

    詳解Python Pyside6如何準(zhǔn)確嵌入可視化數(shù)據(jù)圖表

    Pyside6是一款基于Qt框架的Python GUI開發(fā)庫。它提供了豐富的UI組件和功能,支持多種操作系統(tǒng)。本文主要介紹了Pyside6嵌入可視化數(shù)據(jù)圖表的方法,需要的可以參考一下
    2023-05-05
  • 你需要掌握的20個(gè)Python常用技巧

    你需要掌握的20個(gè)Python常用技巧

    Python的可讀性和簡(jiǎn)單性是其廣受歡迎的兩大原因,本文介紹20個(gè)常用的Python技巧來提高代碼的可讀性,并能幫助你節(jié)省大量時(shí)間,需要的可以參考一下
    2022-02-02
  • Python使用XlsxWriter庫操作Excel詳解

    Python使用XlsxWriter庫操作Excel詳解

    XlsxWriter 是一個(gè)功能強(qiáng)大的 Python 模塊,專門用于生成 Microsoft Excel 2007及以上版本的電子表格文件,本文主要為大家介紹了如何使用XlsxWriter庫進(jìn)行Excel基本操作,需要的可以參考下
    2023-11-11
  • python?密碼驗(yàn)證(滑塊驗(yàn)證)

    python?密碼驗(yàn)證(滑塊驗(yàn)證)

    滑塊密碼在很多登錄界面都可以看到,本文主要介紹了python?密碼驗(yàn)證(滑塊驗(yàn)證),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論

大余县| 永善县| 乐清市| 南昌市| 白玉县| 杂多县| 鄂伦春自治旗| 盐池县| 福鼎市| 乌兰县| 灵台县| 裕民县| 张家川| 疏附县| 康乐县| 临夏县| 登封市| 张家界市| 浪卡子县| 大兴区| 静乐县| 哈密市| 郧西县| 丽水市| 柳州市| 清流县| 游戏| 河东区| 白朗县| 古丈县| 治县。| 和林格尔县| 扎兰屯市| 滦南县| 泸定县| 海兴县| 明溪县| 通州市| 温州市| 大冶市| 平泉县|