国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中property函數用法實例分析

2020-02-15 21:36:52
字體:
來源:轉載
供稿:網友

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

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

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

property()函數前面三個參數分別對應于數據描述符的中的__get____set____del__方法,所以它們之間會有一個內部的與數據描述符的映射。

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

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

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

第一種:

#!/usr/bin/python#coding: utf-8class 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)# 輸出此時矩形的長和寬# 此時執行的是getSizeprint r.size# 修改size的值# 此時執行的是setSizer.size = 100, 200print r.sizedel r.heightprint r.width# height屬性已經被刪除,下面語句會報錯# print r.size

運行結果:

(10, 20)
(100, 200)
100

第二種:(裝飾器)

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

運行結果:

(10, 20)
(100, 200)
100

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锦州市| 洪雅县| 屯留县| 双流县| 石河子市| 潼南县| 资中县| 临清市| 灵台县| 沛县| 肇庆市| 海南省| 桐庐县| 吴堡县| 如东县| 宣武区| 邯郸县| 读书| 屯昌县| 崇文区| 六枝特区| 房山区| 明光市| 昭平县| 马边| 通辽市| 云南省| 温泉县| 逊克县| 嘉祥县| 江永县| 南华县| 澄江县| 汤阴县| 济南市| 曲周县| 高邑县| 无棣县| 金门县| 武冈市| 龙里县|