標籤:hat self 製造 類的屬性 命名規則 inf 命名法 python3 形參
what the f**k!!這個知識點學不好的最大元兇就是,我還單身???
python基礎(四):
物件導向的三個特點: 封裝,繼承,多態
類:
對象是物件導向編程的核心,在使用對象的過程中,為了將具有共同特徵和行為的一組對象抽象定義,提出了另外一個新的概念——類
類就相當於製造飛機時的圖紙,用它來進行建立的飛機就相當於對象
類(Class) 由3個部分構成
- 類的名稱:類名
- 類的屬性:一組資料
- 類的方法:允許對進行操作的方法 (行為)
建立一個類:
class Car(object):# 類命名規則按照大駝峰命名法.首字母大寫 # 方法 def getCarInfo(self): print(‘車輪子個數:%d, 顏色%s‘%(self.wheelNum, self.color))
補充:
有些代碼的類可能沒有繼承object,這個問題在Python 3之後就不複存在了,因為Python3中所有的類都是新式類,由於涉及到深度和廣度問題,有興趣的朋友自己看看吧
#新式類是指繼承object的類class A(object): ........... #經典類是指沒有繼承object的類class A: ...........
類方法:
在類地內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且為第一個參數,self 代表的是類的執行個體
# 定義類class Car: #定義方法 # 移動 def move(self): print(‘車在奔跑...‘) # 鳴笛 def toot(self): print("車在鳴笛...嘟嘟..")
__init__()方法:#init前後符號是兩條底線 _ _ 不要搞錯.
能夠在建立對象的時候,就順便把這個對象的屬性給設定
# 定義汽車類class Car: def __init__(self): self.wheelNum = 4 self.color = ‘藍色‘ #效果等同於上文的 BMW.color = ‘黑色‘, 只不過上文的是添加屬性,這裡的是在類裡面就把屬性寫好了 def move(self): print(‘車在跑,目標:夏威夷‘)# 建立對象BMW = Car()print(‘車的顏色為:%s‘%BMW.color)print(‘車輪胎數量為:%d‘%BMW.wheelNum)
__init__()方法,在建立一個對象時預設被調用,不需要手動調用
__init__(self)中,預設有1個參數名字為self,如果在建立對象時傳遞了2個實參,那麼__init__(self)中出了self作為第一個形參外還需要2個形參,例如__init__(self,x,y)
__init__(self)中的self參數,不需要開發人員傳遞,python解譯器會自動把當前的對象引用傳遞進去
類對象:
類對象支援兩種操作:屬性引用和執行個體化
# 定義類
class Car: # 移動 def move(self): print(‘車在奔跑...‘) # 鳴笛 def toot(self): print("車在鳴笛...嘟嘟..")# 建立一個對象,並用變數BMW來儲存它的引用BMW = Car()BMW.color = ‘黑色‘ #給對象添加屬性BMW.wheelNum = 4 #輪子數量 給對象添加屬性BMW.move() # 調用對象的move方法BMW.toot() # 調用對象的toot方法print(BMW.color)print(BMW.wheelNum)
--->
車在奔跑...
車在鳴笛...嘟嘟..
黑色
4
- BMW = Car(),這樣就產生了一個Car的執行個體對象,此時也可以通過執行個體對象BMW來訪問屬性或者方法
- 第一次使用BMW.color = ‘黑色‘表示給BMW這個對象添加屬性,如果後面再次出現BMW.color = xxx表示對屬性進行修改
- BMW是一個對象,它擁有屬性(資料)和方法(函數)
- 當建立一個對象時,就是用一個模子,來製造一個實物
類的繼承:
子類獲得了父類的全部功能
1 # 定義類 2 class Car: 3 # 移動 4 def move(self): 5 print(‘車在奔跑...‘) 6 7 # 鳴笛 8 def toot(self): 9 print("車在鳴笛...嘟嘟..")10 11 class BMW(Car):12 def stop(self):13 print(‘stop‘)14 15 X5 = BMW()16 Audi = Car()17 18 X5.move()19 Audi.move()
--->
車在奔跑...
車在奔跑...
初識python 物件導向