標籤(空格分隔): python
在python的官方幫助文件中有關於property類(built-in class)的說明(the python standard library/2 built-in functions)
class
student
(object):
def__init__
(self,name='empty'):
self._name = name
defget_name
(self):
return self._name
defset_name
(self,name):
self._name = name
defdel_name
(self):
del self._name
name = property(get_name, set_name, del_name, 'i am the property sample')
foo = student("xiaoming")
print (foo.name)
foo.name = 'haizhen'
print (foo.name)
del foo.name
通過上面的例子可以看出,property可以使得類屬性的訪問、設定即隱晦又直接(把普通的賦值語句與方法聯絡在一起)。因為property還可以作為裝飾器,乙個property物件有getter,setter,和deleter三個方法,因此對於上面的例子還可以有另外一種寫法:
class
student
(object):
def__init__
(self,name='empty'):
self._name = name
@property
defname
(self):
return self._name
@name.setter
defname
(self,name):
self._name = name
@name.deleter
defname
(self):
del self._name
foo = student("xiaoming")
print (foo.name)
foo.name = 'haizhen'
print (foo.name)
del foo.name
如果不定義setter那麼就相當於是乙個唯讀屬性:
class
student
(object):
@property
defbirth
(self):
return self._birth
@birth.setter
defbirth
(self, value):
self._birth = value
@property
defage
(self):
return
2015 - self._birth
上面的例子中,age就是唯讀的
練習:利用@property給乙個screen物件增加width與height屬性,以及乙個唯讀屬性resolution解答:
class
screen
(object):
@property
defwidth
(self):
return self._width
@width.setter
defwidth
(self,width):
self._width = width
@property
defheight
(self):
return self._height
@height.setter
defheight
(self,height):
self._height = height
@property
defresolution
(self):
return self._height * self._width
bar = screen()
bar.width = 3480
bar.height = 2160
print(bar.resolution)
SV的物件導向程式設計2(OOP)
若想建立乙個與現存的類很相似的新類,但是增加了一些新的變數和方法,那麼可以使用繼承。繼承可以從乙個現存類獲得其變數和子程式 繼承通過增加新的特性提供了可重用性,不要編寫額外 不需要更改基類就可使對現有類增加新的功能。基類包含一些公共的 基礎的屬性和方法。其中方法function之前要冠以virtua...
Python學習筆記12 OOP
繼承的特徵 1.所有類都繼承自object類,即所有的類都是object類的子類 2.子類一旦繼承父類,則可以使用父類中除私有成員外的所有內容 3.子類繼承父類後並沒有將父類成員完全賦值到子類中,而是通過引用的關係訪問呼叫 4.子類中可以定義獨有的成員屬性和方法 5.如果子類中定義的成員和父類成員相...
python學習筆記 物件導向程式設計(OOP)
1.物件 世間萬物皆是物件。通常將物件分為兩部分 靜態部分 屬性 和動態部分 行為 例如人的性別是物件人的屬性,人走路是物件人的行為。python天生是物件導向的。2.類 類是封裝物件的屬性和行為的載體。類是乙個抽象概念,例如定義人是乙個類,那麼男人 女人都是人這一類的例項。3.物件導向程式設計的特...