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()
    

      

  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/LLBFWH/p/10009671.html
Copyright © 2011-2022 走看看