1. 封裝
把很多資料封裝到⼀個物件中. 把固定功能的**封裝到⼀個**塊,(例如: 寫乙個函式, 乙個類) 打包成模組. 這都屬於封裝的思想.
2.繼承
⼦類可以⾃動擁有⽗類中除了私有屬性外的其他所有內容, 但必須先要宣告父類, 子類才能繼承.
3.多型
同乙個變數, 可以有多種形態,例如: 定義乙個變數: a = 2, a也可以定義成字串: a = 'hello word'
在新式類中查詢父類方法或屬性,查詢方式為廣度優先, 其中類的mro()方法可以檢視類的繼承順序. 繼承分類: 單繼承和多繼承
class
animal
(object):
def__init__
(self, name, age)
: self.name = name
self.age = age
defeat(self)
:return
f'has attribute'
class
cat(animal)
:def
__init__
(self, name, age, ***)
: self.name = name
self.age = age
self.*** = ***
defrun(self)
:return
f'can run'
if __name__ ==
'__main__'
:#例項化物件時必須執行__init__方法,類中沒有,從父類找,父類沒有,從object類中找。
#python3中使⽤的都是新式類. 如果基類誰都不繼承. 那這個類會預設繼承 object
a = cat(
'tom',4
,'m'
)print
(a.name)
print
(a.eat(
))
class
aobject()
:def
__init__
(self)
:print
(' excute aobject'
)class
bobject()
:def
__init__
(self)
:print
(' excute bobject'
)class
cobject
(aobject, bobject)
:pass
if __name__ ==
'__main__'
:print
(cobject.mro())
#執行順序: [, , , ]
#繼承順序: aobject - > bobject
鑽石繼承順序class
aobject()
:def
__init__
(self)
:print
(' excute aobject'
)def
func
(self)
:print
('excute aobject func'
)class
bobject
(aobject)
:def
__init__
(self)
:print
(' excute bobject func'
)class
cobject
(aobject)
:def
func
(self)
:print
('excute cobject func'
)class
dobject
(bobject, cobject)
:def
__init__
(self)
:print
('excute dpbject'
)if __name__ ==
'__main__'
:"""
鑽石繼承, bobject, cobject繼承aobject, dobject 繼承: bobject, cobject
dobject 先從bobject 找func, 沒有找到, 繼續從 cobject 找. 找到了, 就不往下找了, 如果找不到, 就找aobject, 如果aobject沒有, 就會找object
"""dobject(
).func(
)print
(dobject.mro(
))
python物件導向學習 python物件導向學習
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...
python物件導向總結 Python物件導向總結
python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...
python登入物件導向 python 物件導向
一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...