抽象类,接口类,归一化设计,多态,鸭子类型

抽象类 : 规则
约束了所有继承这个抽象类的子类必须实现某些同名方法
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()

猜你喜欢

转载自www.cnblogs.com/LLBFWH/p/10009671.html