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

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

  

 

posted @ 2019-05-24 22:53  7411  阅读(197)  评论(0编辑  收藏  举报