Python抽象基類(abc)

簡單實現方式

NotImplementedError: 子類沒有實現父類要求一定要實現的接口。

在面向對象編程中,父類中可以預留一個接口不實現,要求在子類中實現。如果一定要子類中實現該方法,可以使用raise NotImplementedError報錯。

class A:
    def get(self, key):
        raise NotImplementedError

    def set(self, key, value):
        raise NotImplementedError


class B(A):
    def get(self, key):
        print("!")


if __name__ == '__main__':
    b = B()
    b.get("a")

其他方式

如果希望在初始化的時候就拋出異常,可以使用abc模塊

import abc


class A(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def get(self, key):
        pass

    @abc.abstractmethod
    def set(self, key, value):
        pass

class B(A):
    def get(self, key):
        print(1)

    def set(self, key, value):
        print(2)
if __name__ == '__main__':
    b = B()
    b.get("a")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章