zoukankan      html  css  js  c++  java
  • 【Python】接口定义及实现

    一、无返回值

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    @Time    :
    @Author  :
    @File    :
    @Version :1.0
    @Function:
    """
    
    
    # 定义接口
    class InterfaceRoot(object):
        def get_a(self):
            pass
    
        def get_b(self):
            pass
    
        def get_c(self):
            pass
    
    
    # 接口实现1
    class Impl1InterfaceRoot(InterfaceRoot):
        def get_a(self):
            print("Impl1_a")
    
        def get_b(self):
            print("Impl1_b")
    
    
    # 接口实现2
    class Impl2InterfaceRoot(InterfaceRoot):
        def get_a(self):
            print("Impl2_a")
    
        def get_b(self):
            print("Impl2_b")
    
        def get_c(self):
            print("Impl2_c")
    
    
    if __name__ == '__main__':
        print('Impl1InterfaceRoot 实现')
        Impl1InterfaceRoot().get_a()
        Impl1InterfaceRoot().get_b()
        Impl1InterfaceRoot().get_c()
        print('Impl2InterfaceRoot 实现')
        Impl2InterfaceRoot().get_a()
        Impl2InterfaceRoot().get_b()
        Impl2InterfaceRoot().get_c()

    输出

    Impl1InterfaceRoot 实现
    Impl1_a
    Impl1_b
    Impl2InterfaceRoot 实现
    Impl2_a
    Impl2_b
    Impl2_c

    二、有返回值

     -> 后面表示说明此方法的返回值(注释作用)

     ... 表示返回值可以有0个或多个

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    @Time    :
    @Author  :
    @File    :
    @Version :1.0
    @Function:
    """
    
    
    # 定义接口
    class InterfaceRoot(object):
        def get_a(self) -> int: ...
    
        def get_b(self) -> int: ...
    
        def get_c(self) -> int: ...
    
    
    # 接口实现1
    class Impl1InterfaceRoot(InterfaceRoot):
        def get_a(self):
            print("Impl1_a")
            return '接口实现1 get_a 返回值'
    
        def get_b(self):
            print("Impl1_b")
    
    
    # 接口实现2
    class Impl2InterfaceRoot(InterfaceRoot):
        def get_a(self):
            print("Impl2_a")
    
        def get_b(self):
            print("Impl2_b")
    
        def get_c(self):
            print("Impl2_c")
    
    
    if __name__ == '__main__':
        print('---------------------------------------Impl1InterfaceRoot 实现')
        print(Impl1InterfaceRoot().get_a())
        Impl1InterfaceRoot().get_b()
        Impl1InterfaceRoot().get_c()
        print('---------------------------------------Impl2InterfaceRoot 实现')
        print(Impl2InterfaceRoot().get_a())
        Impl2InterfaceRoot().get_b()
        Impl2InterfaceRoot().get_c()

    输出:

    ---------------------------------------Impl1InterfaceRoot 实现
    Impl1_a
    接口实现1 get_a 返回值
    Impl1_b
    ---------------------------------------Impl2InterfaceRoot 实现
    Impl2_a
    None
    Impl2_b
    Impl2_c

    如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
  • 相关阅读:
    Spark
    升级测试数据迁移数据库版本不兼容的问题:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错
    Redis
    批处理引擎MapReduce
    分布式协调服务ZooKeeper
    分布式列式存储系统Kudu
    Python入门学习笔记9:Python高级语法与用法-枚举、函数式编程<闭包>
    Python入门学习笔记8:正则表达式与JSON
    Python入门学习笔记7:面向对象
    Python入门学习笔记6:函数
  • 原文地址:https://www.cnblogs.com/danhuai/p/15512210.html
Copyright © 2011-2022 走看看