class Base(object): def login(self): raise NotImplementedError("子類沒有實現該方法") # NotImplementedError 沒有實現的錯誤 class Normal(Base): def login(self): pass class Member(Base): def denglu(self): pass class Admin(Base): def login(self): pass # 項目經理總入口 def login(obj): print("準備驗證碼...") obj.login() print("進入主頁...") n = Normal() m = Member() a = Admin() login(n) login(m) # 報錯 login(a)
from abc import ABCMeta, abstractmethod class Base(metaclass=ABCMeta): @abstractmethod def login(self): pass class Normal(Base): def login(self): pass class Member(Base): def denglu(self): pass class Admin(Base): def login(self): pass n = Normal() n.login() m = Member() # 報錯 Can't instantiate abstract class Member with abstract methods login m.login() a = Admin() a.login()