• python的面向接口编程


    class Feature:
        def __init__(self, name): self.name = name
        def move(self): pass
    
    
    class Duck(Feature):
        def move(self): print(f'{self.name} is walking')
    
    
    class Bird(Feature):
        def move(self): print(f'{self.name} is flying')
    
    
    def feature_move(one):
        one.move()
    
    
    if __name__ == '__main__':
        Donald = Duck('Donald')
        Eagle = Bird('Eagle')
        feature_move(Donald)
        feature_move(Eagle)

    其实这里的超类定义的move,就是个接口了,只是没有java interface那样强制子类必须实现它

    要实现也可以,用@abstractmethod

    接口的好处:

    1、你在main代码里去点feature_move 会到one.move()去,但是这边的move,你是找不到代码的,做到了屏蔽

    2、move被各个子类实现自己编写,所以解耦了业务复杂性。

    这就是python的接口

  • 相关阅读:
    双向(端)链表、栈、队列
    WPF 3D基础(1)
    静态查找
    栈和队列 迷宫求解
    异步编程Demo
    WPF 3D基础(2)
    串操作
    链栈和链队
    Linux恢复数据
    word文件修复窍门
  • 原文地址:https://www.cnblogs.com/july401/p/14144974.html
Copyright © 2020-2023  润新知