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

    如果忍耐算是坚强 我选择抵抗 如果妥协算是努力 我选择争取
  • 相关阅读:
    小程序底部弹出式导航菜单
    Markdown-it-latex2img
    Typography convention
    排版规约
    Java String的相关性质分析
    switch表达式中可以用哪些类型
    break,continue和return的区别
    一个.java文件中有多少个类(不是内部类)?
    RabbitMQ启动配置中出现(ArgumentError) argument error xxx的错误
    问题:IDEA部署Springboot项目的时候,提示很多xxx程序包找不到
  • 原文地址:https://www.cnblogs.com/danhuai/p/15512210.html
Copyright © 2011-2022 走看看