最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
property函數(shù)如何在Python中使用-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)property函數(shù)如何在Python中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)是專業(yè)的江西網(wǎng)站建設(shè)公司,江西接單;提供網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行江西網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

具體如下:

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

+ 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

看完上述內(nèi)容,你們對property函數(shù)如何在Python中使用有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


網(wǎng)頁題目:property函數(shù)如何在Python中使用-創(chuàng)新互聯(lián)
URL標題:http://fisionsoft.com.cn/article/doddos.html