0萬物皆是物件
a=
1print
(type
(a))
print
(type
(int
))
結果:
物件由類例項化產生
1定義類和物件
定義類:
class
human
:#成員屬性
*** =
'man'
age =
18 name =
'小明'
height =
'180cm'
weight =
'60kg'
#成員方法
defeat
(self)
:print
('吃飯'
)def
drink
(self)
:print
('self:'
,self,
id(self)
)print
('喝水'
)def
sleep
(self)
:print
('睡覺'
)
例項化物件a:
a=human(
)print
("a:"
,a)
結果:a: <main.human object at 0x000000000257c518>
檢視物件a的資料型別:
print
("type(a):"
,type
(a))
結果:type(a):
檢視物件a的屬性:
語法:物件.屬性
print
(a.***)
結果:man
呼叫物件a的方法:
語法:物件.方法()
a.eat(
)
結果:吃飯
self
self即物件a
在物件使用方法的時候,當前物件會作為第乙個引數的實參傳入。
class
human
:#成員屬性
*** =
'man'
#成員方法
defdrink
(self)
:print
('self:'
,self,
id(self)
)print
('喝水'
)a=human(
)print
("a:"
,a,id
(a))
a.drink(
)
結果:a: <main.human object at 0x000000000259c550> 39437648
self: <main.human object at 0x000000000259c550> 39437648
喝水2繼承
繼承的格式:
class 父類:
pass
class 子類(父類):
pass
注意:①在不指定父類的情況下,所有的類均繼承自object類。
②乙個類中,__init__初始化魔術方法不能出現兩次!
python呼叫父類中的方法【super().方法名()】
1、super().方法名()
2、父類名.方法名(self) #不加self會報異常,缺少1個位置引數,self指的是是誰呼叫的父類中的方法
3、super(當前類名,self).方法名()
注意:init,是構造方法或者建構函式,constructor,python不會自動呼叫父類的constructor,你得親自專門呼叫它。
兩種方法:
父類名.init(self,引數) #注意名字是父類
super(子類名,self).init(引數) #注意名字是子類,而且init後是self之外的引數
ifname== 『main』:
3魔術方法
魔術方法:一種特殊的方法。
1.__ init__初始化魔術方法
class
human
:#成員屬性
#成員方法
def__init__
(self)
: self.*** =
"man"
#例項化物件
a = human(
)print
(a.***)
結果:man python物件導向基礎 python物件導向基礎
面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...
Python之物件導向 物件導向基礎
一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...
python物件導向基礎
類是例項的模版,例項是根據類建立的乙個具體物件,每個物件都有相同的方法,但是各自的資料不同。如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例項的變數名如果以 開頭,就變成了乙個私有變數 private 只有內部可以訪問,外部不能訪問 當子類和父類都存在相同的run...