what the f**k!!這個知識點學不好的最大元凶就是,我還單身??? python基礎(四): 面向對象的三個特點: 封裝,繼承,多態 類: 對象是面向對象編程的核心,在使用對象的過程中,為了將具有共同特征和行為的一組對象抽象定義,提出了另外一個新的概念——類 類就相當於製造飛機時的圖紙,用 ...
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()
--->
車在奔跑...
車在奔跑...