1. 程式人生 > >python之抽象基類

python之抽象基類

抽象基類特點
1.不能夠例項化
2.在這個基礎的類中設定一些抽象的方法,所有繼承這個抽象基類的類必須覆蓋這個抽象基類裡面的方法
思考

既然python中有鴨子型別,為什麼還要使用抽象基類?
一是我們在某些情況下希望判定某個物件的型別:

from collections.abc import Sized
class Company:
    def __init__(self, empo):
        self.empo = empo
    def __len__(self):
        return len(self.empo)

com = Company([1,3,4])
hasAttr(com,'__len__')    // true    如果沒有抽象基類,就必須用hasAttr這個方法
print(isinstance(com, Sized))  // true  有了抽象基類之後,可以直接用isinstance判斷

二是我們要強制某個子類必須實現某些方法