抽象类 : 规则 约束了所有继承这个抽象类的子类必须实现某些同名方法 from abc import ABCMeta,abstractmethod class Abstract(metaclass=ABCMeta): # metaclass 元类 @abstractmethod def func_name(self): print('继承Abstract的子类中必须有一个func_name的方法') class Son(Abstract): def func_name(self): print('继承了Abstract就必须写一个func_name方法') 接口类(对多个抽象类的多继承) class Abstract1(metaclass=ABCMeta): # metaclass 元类 @abstractmethod def wahaha(self): print('继承Abstract1的子类中必须有一个wahaha的方法') class Abstract2(metaclass=ABCMeta): # metaclass 元类 @abstractmethod def qqxing(self): print('继承Abstract2的子类中必须有一个qqxing的方法') class Son(Abstract1,Abstract2): def wahaha(self): print('继承Abstract1的子类中必须有一个wahaha的方法') def qqxing(self): print('继承Abstract2的子类中必须有一个qqxing的方法') 归一化设计 不符合归一化设计的思想 class Student: def denglu(self):pass class Teacher: def login(self):pass a = Student() a.denglu() b = Teacher() b.login() 归一化设计 class Student: def login(self):pass class Teacher: def login(self):pass def login(obj): obj.login() a = Student() a.login() b = Teacher() b.login()