簡單實現方式
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")