物件 = 屬性 + 方法
物件是類的例項。換句話說,類主要定義物件的結構,然後我們以類為模板建立物件。類不但包含方法定義,而且還包含所有例項共享的資料。
self 是什麼?
python 的 self 相當於 c++ 的 this 指標。
class
test
:def
prt(self)
:print
(self)
print
(self.__class__)
t = test(
)t.prt(
)# <__main__.test object at 0x000000bc5a351208>
#
類的方法與普通的函式只有乙個特別的區別 —— 它們必須有乙個額外的第乙個引數名稱(對應於該例項,即該物件本身),按照慣例它的名稱是 self。在呼叫方法時,我們無需明確提供與引數 self 相對應的引數
python 的魔法方法
據說,python 的物件天生擁有一些神奇的方法,它們是物件導向的 python 的一切…
它們是可以給你的類增加魔力的特殊方法…
如果你的物件實現了這些方法中的某乙個,那麼這個方法就會在特殊的情況下被 python 所呼叫,而這一切都是自動發生的…
類有乙個名為__init__(self[, param1, param2…])的魔法方法,該方法在類例項化時會自動呼叫。
公有和私有
在 python 中定義私有變數只需要在變數名或函式名前加上「__」兩個下劃線,那麼這個函式或變數就會為私有的了。
類的私有屬性例項
class
justcounter
: __secretcount =
0# 私有變數
publiccount =
0# 公開變數
defcount
(self)
: self.__secretcount +=
1 self.publiccount +=
1print
(self.__secretcount)
counter = justcounter(
)counter.count(
)# 1
counter.count(
)# 2
print
(counter.publiccount)
# 2print
(counter._justcounter__secretcount)
# 2 python的私有為偽私有
print
(counter.__secretcount)
# attributeerror: 'justcounter' object has no attribute '__secretcount'
繼承
python 同樣支援類的繼承,派生類的定義如下所示:
class
derivedclassname
(baseclassname)
:1>..
baseclassname(示例中的基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用:
class
derivedclassname
(modname.baseclassname)
:1>..
.
如果子類中定義與父類同名的方法或屬性,則會自動覆蓋父類對應的方法或屬性。
# 類定義
class
people
:# 定義基本屬性
name =
'' age =
0# 定義私有屬性,私有屬性在類外部無法直接進行訪問
__weight =
0# 定義構造方法
def__init__
(self, n, a, w)
: self.name = n
self.age = a
self.__weight = w
defspeak
(self)
:print
("%s 說: 我 %d 歲。"
%(self.name, self.age)
)# 單繼承示例
class
student
(people)
: grade =
''def
__init__
(self, n, a, w, g)
:# 呼叫父類的構函
people.__init__(self, n, a, w)
self.grade = g
# 覆寫父類的方法
defspeak
(self)
:print
("%s 說: 我 %d 歲了,我在讀 %d 年級"
%(self.name, self.age, self.grade)
)s = student(
'小馬的程式人生',10
,60,3
)s.speak(
)# 小馬的程式人生 說: 我 10 歲了,我在讀 3 年級
Python 類與物件
引數 預設值 可變引數 關鍵字引數 命名關鍵字引數 返回值 python class student def init self,arg,kwargd 可變引數 arg kwargd if name in kwargd self.name kwargd name defmain s student ...
Python 類與物件
python是一種物件導向的程式語言。python中,幾乎所有東西都是乙個物件。物件有屬性和方法。類是用於建立物件的 藍圖 要建立類,請使用關鍵字class 示例 建立乙個名為myclass的類,其屬性名為x class myclass x 8現在可以使用myclass類建立物件 示例 建立乙個名為...
Python 類與物件
一.一 類 是對一群有相同特徵或者行為的事物的統稱,是抽象的,不可直接使用。二 物件 是由類創造出來的實體,可以直接使用。三 類與物件之間的關係 1.先有類再有物件 2.類只有乙個而物件可以有多個 四 類的設計 3要素 類名 大駝峰命名法 屬性 描述這類事物的特徵 方法 描述這類事物的具體行為 二....