當有乙個問題擺在我面前,傳統思路是我親自上陣,把問題解決。下一次當類似的問題再次出現時,我再上,再解決。。。。。。。。如此重複,不知道什麼時候是個頭。
寫程式也是這樣,面對類似的問題時,如果每次都是從零開始,工作學習的效率將會十分低下,因為總是在重複相同的工作。
物件導向則把我從執行者的角色公升級為了指揮者。我不用再親自上陣,只用建立解決問題的物件,指揮它去解決問題。
這樣不僅解決了**的復用問題,提高了效率,而且讓解決問題的思路變得十分清晰。
類:具有相似的內部狀態和運動規律的實體集合,具有相同的屬性和行為事物的統稱。
比如水果
物件:
某乙個具體事物的存在,在現實世界中看得見摸的著
比如蘋果
類的組成:由三個部分組成
類的名字:類名
類的屬性:一組資料
類的方法:函式(方法)
定義類的格式:兩種
格式01:
class 類名:
def__init__(self):
#init函式在建立物件時自動呼叫
deffunction01():
pass
deffunction02():
pass
.................
格式02:
class 類名(object):#object為所有類的父類
def__init__(self):
#init函式在建立物件時自動呼叫
deffunction01():
pass
deffunction02():
pass
.................
接下來我們定義乙個貓類:
class
cat:
def__init__
(self):
self.color = 'yellow'
defeat
(self):
print("貓在吃魚....")
defdrink
(self):
print("貓在喝水....")
物件的建立:
物件名 = 類名()
建立乙個cat類的物件,並獲取cat中的屬性和方法
tom = cat()
tom.color
tom.eat()
tom.drink()
所謂self—->自身(自己)
某乙個物件呼叫其方法時,python直譯器會把物件作為第乙個引數傳遞給self
定義乙個汽車類
class
car:
def__init__
(self,newwheelnum,newcolor):
self.wheelnum = newwheelnum
self.color = newcolor
建立車類的物件
bmw = car(4,"黑色")
print(bmw.color)
print(bmw.wheelnum)
byd = car(6,"花色")
print(byd.color)
print(byd.wheelnum)
「」」
總結:
init():在建立乙個物件時被預設呼叫,不需要手動呼叫
init():預設有乙個引數self—-》函式自身,如果在建立物件時傳遞2個實參,
self不需要開發者傳遞,python直譯器會自動把當前的物件的引用傳遞進去
「」「定義:
魔方—-》特殊的方法
指被包含下劃線的方法的統稱,統稱在特殊的情況下呼叫—-》魔方方法
class
car:
def__init__
(self,newwheelnum,newcolor):
self.wheelnum = newwheelnum
self.color = newcolor
def__str__
(self):
msg = "嘿嘿...我的顏色是"+self.color+"我有"+self.wheelnum+"個輪子"
return msg
#建立物件
bmw = car("4","白色")
print(bmw)
總結:
在python中,方法名字如果是***(),那麼就具有特殊的功能—-》魔方方法
當使用print()輸入物件的時候,只需要定義乙個str方法,就會列印return中的資料
python基礎四 01 物件導向
物件導向程式設計與面向過程程式設計是兩種常見的程式設計思想。先通過引子來看下 話說三國時期,曹操帶領百萬大軍攻打東吳,大軍在長江赤壁駐紮,軍船連成一片。眼看就要滅了東吳,統一天下,曹操大悅,於是大宴眾文武。在酒席間,曹操詩性大發,不覺吟道 喝酒唱歌,人生真爽.眾文武齊呼 丞相好詩!於是命印刷工匠刻版...
python物件導向01
如圖的繼承關係,然後驗證經典類與新式類在查詢乙個屬性時的搜尋順序 class b def test self print from b pass class c def test self print from c pass class d b,c def test self print from ...
物件導向01 基礎篇
物件導向基礎 一 物件導向的概念 1.物件導向的概念 面向過程的思想是拿到一件事,首先考慮的是該怎麼去做 而物件導向的思想是拿到一件事考慮的是該讓誰去做 物件導向是將面向過程中的執行者變成指揮者,使用物件導向的開發降低 的耦合度 一般將具有 封裝,繼承,多型 等特徵的程式語言稱為具有物件導向思想的程...