zoukankan      html  css  js  c++  java
  • 抽象类,接口类,归一化设计,多态,鸭子类型

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

      

  • 相关阅读:
    2020年封装APP之详解
    Linux 强制卸载硬盘 (Device is busy)
    pacman 非交互状态使用
    Snakemake 修改默认工作目录
    LaTeX 表格排版中遇到 Misplaced oalign
    重启崩溃的 KDE
    python robot.libraries.BuiltIn import BuiltIn库
    logging 常用配置
    paramiko 获取远程服务器文件
    物理时间使用Python脚本转格林卫时间
  • 原文地址:https://www.cnblogs.com/LLBFWH/p/10009671.html
Copyright © 2011-2022 走看看