亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

property()的實(shí)現(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, "實(shí)例對(duì)象")
r = Rectangle(10, 20)
# 輸出此時(shí)矩形的長(zhǎng)和寬
# 此時(shí)執(zhí)行的是getSize
print r.size
# 修改size的值
# 此時(shí)執(zhí)行的是setSize
r.size = 100, 200
print r.size
del r.height
print r.width
# height屬性已經(jīng)被刪除,下面語句會(huì)報(bào)錯(cuò)
# print r.size

運(yùn)行結(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
  # 下面加@符號(hào)的函數(shù)名要相同
  # 第一個(gè)是get方法
  @property
  def Size(self):
    return self.width, self.height
  # 此處是set方法,是@property的副產(chǎn)品
  @Size.setter
  def Size(self, size): # 此時(shí)接收的是一個(gè)元祖
    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屬性,所以下面再訪問的時(shí)候會(huì)報(bào)錯(cuò)
# print r.Size
# 可以訪問width,還沒有被刪除
print r.width

運(yùn)行結(jié)果:

(10, 20)
(100, 200)
100

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

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

相關(guān)文章

  • python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉

    python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉

    今天小編就為大家分享一篇python 實(shí)現(xiàn)保存最新的三份文件,其余的都刪掉,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python實(shí)現(xiàn)提取和去除數(shù)據(jù)中包含關(guān)鍵詞的行

    Python實(shí)現(xiàn)提取和去除數(shù)據(jù)中包含關(guān)鍵詞的行

    這篇文章主要介紹了Python如何提取數(shù)據(jù)中包含關(guān)鍵詞的行已經(jīng)如何去除數(shù)據(jù)中包含關(guān)鍵詞的行,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-08-08
  • python3?http.client?網(wǎng)絡(luò)請(qǐng)求方式

    python3?http.client?網(wǎng)絡(luò)請(qǐng)求方式

    這篇文章主要介紹了python3?http.client?網(wǎng)絡(luò)請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python?數(shù)據(jù)篩選功能實(shí)現(xiàn)

    Python?數(shù)據(jù)篩選功能實(shí)現(xiàn)

    這篇文章主要介紹了Python?數(shù)據(jù)篩選,無論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時(shí)候,數(shù)據(jù)篩選總會(huì)涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下
    2023-04-04
  • Python實(shí)現(xiàn)wav和pcm的轉(zhuǎn)換方式

    Python實(shí)現(xiàn)wav和pcm的轉(zhuǎn)換方式

    這篇文章主要介紹了Python實(shí)現(xiàn)wav和pcm的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 在Python中操作字符串之replace()方法的使用

    在Python中操作字符串之replace()方法的使用

    這篇文章主要介紹了在Python中操作字符串之replace()方法的使用,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python中flatten( ),matrix.A用法說明

    Python中flatten( ),matrix.A用法說明

    這篇文章主要介紹了Python中flatten( ),matrix.A用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python中ValueError報(bào)錯(cuò)的原因和解決辦法

    Python中ValueError報(bào)錯(cuò)的原因和解決辦法

    在Python編程中,ValueError是一種非常常見的異常類型,它通常發(fā)生在函數(shù)接收到一個(gè)有效類型但不適合該函數(shù)操作的值時(shí),本文將深入探討ValueError的報(bào)錯(cuò)原因、提供詳細(xì)的解決辦法,并通過豐富的代碼示例來加深理解,需要的朋友可以參考下
    2024-07-07
  • Pytorch中如何調(diào)用forward()函數(shù)

    Pytorch中如何調(diào)用forward()函數(shù)

    這篇文章主要介紹了Pytorch中如何調(diào)用forward()函數(shù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 淺談Python中重載isinstance繼承關(guān)系的問題

    淺談Python中重載isinstance繼承關(guān)系的問題

    本篇文章主要介紹了淺談Python中重載isinstance繼承關(guān)系的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05

最新評(píng)論