Python class,繼承和多型,異常處理

2021-08-01 09:45:41 字數 1551 閱讀 6102

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...