第十八天 物件導向程式設計的特點(二)
類
物件導向
多繼承
class Parent2():
print('我是第二個爹')
class Parent():
print('我是第一個爹')
class SubClass(Parent, Parent2):
print('我是子類')
#
# 結果: 我是第二個爹
# 我是第一個爹
# 我是子類
#注意:類在定義的時候就執行類體程式碼,執行順序是從上到下
__bases __可以獲取當前類所有的父類 使用SubClass. __bases __
print(SubClass.__bases__)
(<class '__main__.Parent'>, <class '__main__.Parent2'>)
多型
將父類物件應用於子類的特徵就是多型。比如建立一個螺絲類,螺絲類有兩個屬性:粗細和螺紋密度;然後在建立兩類,一個是長螺絲,一個是短螺絲,並且他們都繼承了螺絲類。這樣長螺絲類和短螺絲類不僅具有相同的特徵,還具有不同的特徵。子類繼承父類特徵的同時,也具有了自己的特徵,並且能夠實現不同的效果,這就是多型的結構。
屬性和方法
- 類屬性
- 例項屬性
- 例項方法
- 類方法
- 靜態方法(擴充套件)
實現:
class Game(object):
top_score = 0 # 遊戲最高分,類屬性
@staticmethod
def show_help(): # 靜態方法
print("幫助資訊:讓殭屍走進房間")
@classmethod
def show_top_score(cls): # 類方法
print("遊戲最高分是 %d" % cls.top_score)
def __init__(self, player_name):
self.player_name = player_name # 例項屬性
def start_game(self): # 例項方法
print("[%s] 開始遊戲..." % self.player_name)
Game.top_score = 999 # 使用類名.修改歷史最高分
測試:
# 1. 檢視遊戲幫助
Game.show_help()
# 2. 檢視遊戲最高分
Game.show_top_score()
# 3. 建立遊戲物件,開始遊戲
game = Game("小明")
game.start_game()
# 4. 遊戲結束,檢視遊戲最高分
Game.show_top_score()
異常
異常簡介
- 程式在運⾏過程中可能會出現⼀些錯誤。⽐如: 使⽤了不存在的索引,兩個不
同型別的資料相加…這些錯誤我們稱之為異常 - 處理異常 程式運⾏時出現異常,⽬的並不是讓我們的程式直接終⽌!Python
是希望在出現異常時,我們可以編寫程式碼來對異常進⾏處理
異常的傳播
- 當在函式中出現異常時,如果在函式中對異常進⾏了處理,則異常不會在進
⾏傳播。如果函式中沒有對異常進⾏處理,則異常會繼續向函式調⽤傳播。
如果函式調⽤處處理了異常,則不再傳播異常,如果沒有處理則繼續向調⽤
處傳播。直到傳遞到全域性作⽤域(主模組)如果依然沒有處理,則程式終⽌,並
顯示異常資訊。 - 當程式運⾏過程中出現異常以後,所有異常資訊會儲存到⼀個異常物件中。
⽽異常傳播時,實際上就是異常物件拋給了調⽤處
異常物件
try語句
try:
程式碼塊(可能出現錯誤的語句)
except 異常型別 as 異常名:
程式碼塊(出現錯誤以後的處理⽅式)
except 異常型別 as 異常名:
程式碼塊(出現錯誤以後的處理⽅式)
except 異常型別 as 異常名:
程式碼塊(出現錯誤以後的處理⽅式)
....
else:
程式碼塊(沒出錯時要執⾏的語句)
finally:
程式碼塊(是否出錯該程式碼塊都會執⾏)
try是必須的 else有沒有都可以
except和finally⾄少有⼀個
相關文章
- Javascript 物件導向程式設計(二)JavaScript物件程式設計
- 物件導向程式設計物件程式設計
- javascript:物件導向的程式設計JavaScript物件程式設計
- JS物件導向的程式設計JS物件程式設計
- Scala的物件導向程式設計物件程式設計
- Python物件導向程式設計Python物件程式設計
- 程式設計思想 物件導向程式設計物件
- js物件導向程式設計JS物件程式設計
- 十三、物件導向程式設計物件程式設計
- 十六、物件導向程式設計物件程式設計
- Python 物件導向程式設計Python物件程式設計
- JS物件導向程式設計(一):物件JS物件程式設計
- 物件導向程式設計-java語言 第二週程式設計題物件程式設計Java
- JS物件導向程式設計(二):建構函式JS物件程式設計函式
- 物件導向程式設計第二單元總結物件程式設計
- [筆記]物件導向的程式設計筆記物件程式設計
- 物件導向程式設計C++物件程式設計C++
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- python技能--物件導向程式設計Python物件程式設計
- Javascript 物件導向程式設計(一)JavaScript物件程式設計
- Javascript 物件導向程式設計(三)JavaScript物件程式設計
- 06 物件導向程式設計 (續)物件程式設計
- Python物件導向程式設計(1)Python物件程式設計
- Python - 物件導向程式設計 - super()Python物件程式設計
- Python - 物件導向程式設計 - @propertyPython物件程式設計
- JavaScript物件導向程式設計理解!JavaScript物件程式設計
- 從零學Python:第十六課-物件導向程式設計入門Python物件程式設計
- 物件導向程式設計的基本原則物件程式設計
- JavaScript-設計模式-物件導向程式設計JavaScript設計模式物件程式設計
- JavaScript設計模式之物件導向程式設計JavaScript設計模式物件程式設計
- 全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論物件程式設計
- 設計模式(二):物件導向及其特性分析設計模式物件
- 程式設計師程式設計入門,物件導向需要知道這6點!程式設計師物件
- 史上最全 Python 物件導向程式設計Python物件程式設計
- 淺談PHP物件導向程式設計PHP物件程式設計
- JS物件導向程式設計(三):原型JS物件程式設計原型
- python基礎(物件導向程式設計)Python物件程式設計
- java-物件導向程式設計--(3)Java物件程式設計