class 類
class myclass:
def __init__(self, val): # 初始化函式,self必須要有
self.val = val
def display(self, s):
print('%s: %d' % (s, self.val))
# python中類和物件都是可以傳遞的。
m = myclass(100) # 進行物件傳遞
print(m.val) # 100
m.display('hello') #等同於 display(m, 'hello') 輸出 hell0: 100
print('')
m2 = m
print(id(m)) # 這裡主要看下m2 和 m 是等價的
print(id(m2))
fn = m.display
fn('hey') # hey: 100
繼承和多型
# 繼承和多型
class base:
pass
class myclass(base):
def run(self):
print('myclass run')
class myclass2(base):
def run(self):
print('myclass2 run')
m = myclass()
print(isinstance(m, myclass))
print(issubclass(myclass2, base))
print('')
# 多型
# python關注繼承的類有沒有這個方法,而不關注是從**繼承過來的
m2 = myclass2()
m.run()
m2.run()
print('')
def duck(d):
d.run()
class man:
def run(self):
print('man run')
class monkey:
def run(self):
print('monkey run')
duck(man())
duck(monkey())
異常處理
主要考慮:捕捉異常情況,跟具體的執行進行解耦
import traceback
try:
print('try...')
r = 10 / 0
except zerodivisionerror as e:
# 2.7: except zerodivisionerror, e:
print('zerodivisionerror:', e)
print(traceback.print_exc())
finally:
print('finally...') # 不管錯誤是否發生,都要去執行以下。
python class 繼承和多繼承
繼承和多繼承 子類在繼承的時候,在定義類的時候,填寫的是父類的名字 父類的屬性和方法,子類都可以繼承並使用 父類 子類 基類 派生類 class chickensoup object 繼承的子類引數是object,多繼承的子類引數是父類的名字 definit self self.name 爺爺傳承下...
單繼承和多繼承
物件導向的三大特性 封裝,繼承,多型.什麼是繼承?專業角度 b 繼承 a類,b就叫做a的子類,派生類,a叫做b的父類,基類,超類.b類以及b類的物件使用a類的所有的屬性以及方法.字面意思 繼承就是繼承父母所有的資產.單繼承,多繼承.繼承的優點.節省 增強的耦合性.規範化.單繼承.子類以及物件可以呼叫...
多重繼承和多繼承, super, mro
父類派生子類,子類繼承父類 通過繼承,可以讓子類去擁有父類中的屬性和方法,而不必重新編寫相同的 並且可以在父類的基礎上新增新的屬性和功能。在繼承的同時,子類還可以重寫父類中的方法,從而獲取與父類不同的功能,實現多型。在 python 中 所有的類都是存在繼承關係的,沒有顯示繼承的,都是預設繼承 ob...