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

Python中property函數(shù)用法實例分析

 更新時間:2018年06月04日 08:44:58   作者:有一種宿命叫無能為力  
這篇文章主要介紹了Python中property函數(shù)用法,結(jié)合實例形式分析了property函數(shù)的功能、參數(shù)、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下

本文實例講述了Python中property函數(shù)用法。分享給大家供大家參考,具體如下:

通常我們在訪問和賦值屬性的時候,都是在直接和類(實例的)的__dict__打交道,或者跟數(shù)據(jù)描述符等在打交道。但是假如我們要規(guī)范這些訪問和設(shè)值方式的話,一種方法是引入復(fù)雜的數(shù)據(jù)描述符機制,另一種恐怕就是輕量級的數(shù)據(jù)描述符協(xié)議函數(shù)Property()。它的標(biāo)準(zhǔn)定義是:

+ property(fget=None,fset=None,fdel=None,doc=None)
+ 前面3個參數(shù)都是未綁定的方法,所以它們事實上可以是任意的類成員函數(shù)

property()函數(shù)前面三個參數(shù)分別對應(yīng)于數(shù)據(jù)描述符的中的__get__,__set__,__del__方法,所以它們之間會有一個內(nèi)部的與數(shù)據(jù)描述符的映射。

綜上描述,其實property()函數(shù)主要是用來規(guī)范化訪問類的屬性和修改類屬性的值的一種方法。

property()函數(shù)可以用0,1,2,3,4個參數(shù)來調(diào)用,順序依次是get,set,del,doc,這四個。

property()的實現(xiàn)方法有兩種,見代碼

第一種:

#!/usr/bin/python
#coding: utf-8
class Rectangle(object):
  def __init__(self, width, height):
    self.width = width
    self.height = height
  def getSize(self):
    return self.width, self.height
  def setSize(self, size):
    self.width, self.height = size
  def delSize(self):
    del self.height
  size = property(getSize, setSize, delSize, "實例對象")
r = Rectangle(10, 20)
# 輸出此時矩形的長和寬
# 此時執(zhí)行的是getSize
print r.size
# 修改size的值
# 此時執(zhí)行的是setSize
r.size = 100, 200
print r.size
del r.height
print r.width
# height屬性已經(jīng)被刪除,下面語句會報錯
# print r.size

運行結(jié)果:

(10, 20)
(100, 200)
100

第二種:(裝飾器)

#!/usr/bin/python
#coding: utf-8
class Rectangle(object):
  def __init__(self, width, height):
    self.width = width
    self.height = height
  # 下面加@符號的函數(shù)名要相同
  # 第一個是get方法
  @property
  def Size(self):
    return self.width, self.height
  # 此處是set方法,是@property的副產(chǎn)品
  @Size.setter
  def Size(self, size): # 此時接收的是一個元祖
    self.width, self.height = size
  @Size.deleter
  def Size(self):
    del self.width
    del self.height
r = Rectangle(10, 20)
print r.Size
r.Size = 100, 200
print r.Size
del r.height
# 由于上一步刪除了self.height屬性,所以下面再訪問的時候會報錯
# print r.Size
# 可以訪問width,還沒有被刪除
print r.width

運行結(jié)果:

(10, 20)
(100, 200)
100

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • 一行代碼讓 Python 的運行速度提高100倍

    一行代碼讓 Python 的運行速度提高100倍

    python一直被病垢運行速度太慢,但是實際上python的執(zhí)行效率并不慢,慢的是python用的解釋器Cpython運行效率太差。這篇文章主要介紹了一行代碼讓 Python 的運行速度提高100倍的相關(guān)知識,需要的朋友可以參考下
    2018-10-10
  • 解決安裝和導(dǎo)入tensorflow、keras出錯的問題

    解決安裝和導(dǎo)入tensorflow、keras出錯的問題

    這篇文章主要介紹了解決安裝和導(dǎo)入tensorflow、keras出錯的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Python中xlsx文件轉(zhuǎn)置操作詳解(行轉(zhuǎn)列和列轉(zhuǎn)行)

    Python中xlsx文件轉(zhuǎn)置操作詳解(行轉(zhuǎn)列和列轉(zhuǎn)行)

    很多時候我們處理的Excel表格并不是我們想要的樣子,需要將表格的形式進行相應(yīng)轉(zhuǎn)換后進行數(shù)據(jù)分析操作,下面這篇文章主要給大家介紹了關(guān)于Python中xlsx文件轉(zhuǎn)置操作(行轉(zhuǎn)列和列轉(zhuǎn)行)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python抓取京東價格分析京東商品價格走勢

    python抓取京東價格分析京東商品價格走勢

    本文介紹使用python抓取京東價格的代碼,用于分析京東商品價格走勢或者用于其它,大家參考使用吧
    2014-01-01
  • python實現(xiàn)簡單遺傳算法

    python實現(xiàn)簡單遺傳算法

    這篇文章主要介紹了python如何實現(xiàn)簡單遺傳算法,幫助大家更好的利用python進行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    這篇文章主要介紹了python中Tkinter復(fù)選框Checkbutton是否被選中判斷方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python 序列類型list示例詳解

    python 序列類型list示例詳解

    列表(List)是一種有序的集合,可以包含任意類型的對象:數(shù)字、字符串甚至其他列表等,列表是可變的,這意味著我們可以添加、刪除或更改列表中的元素,這篇文章主要介紹了python 序列類型list示例詳解,需要的朋友可以參考下
    2024-04-04
  • 教你用Python代碼實現(xiàn)合并excel文件

    教你用Python代碼實現(xiàn)合并excel文件

    近幾天一直因為excel文件太多太雜的原因苦惱,今天特地整理了本篇文章,文章介紹的非常詳細,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python入門教程(三十六)Python的文件寫入

    Python入門教程(三十六)Python的文件寫入

    這篇文章主要介紹了Python入門教程(三十六)Python的文件寫入,open()函數(shù)可以打開一個文件供讀取或?qū)懭耄绻@個函數(shù)執(zhí)行成功,會回傳文件對象,需要的朋友可以參考下
    2023-05-05
  • Python繪制雷達圖時遇到的坑的解決

    Python繪制雷達圖時遇到的坑的解決

    這篇文章主要介紹了Python繪制雷達圖時遇到的坑的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

昔阳县| 贺兰县| 衡山县| 台江县| 霍林郭勒市| 永胜县| 四川省| 赤壁市| 黑山县| 玛纳斯县| 北京市| 巨鹿县| 凤翔县| 泰和县| 辽宁省| 泾阳县| 新郑市| 和顺县| 离岛区| 民乐县| 洪雅县| 通化市| 金秀| 伊宁市| 海口市| 衡水市| 华容县| 都安| 商城县| 岳普湖县| 崇左市| 军事| 枞阳县| 常德市| 堆龙德庆县| 青铜峡市| 甘洛县| 黑山县| 牡丹江市| 武汉市| 宜宾市|