精华内容
下载资源
问答
  • 继承的两种用途: 1.继承基类的方法,并且做出自己的改变或者扩展(代码复用) ...抽象类与普通类的不同之处在于:抽象类中只能抽象方法(没有实现功能),该类不能被实例化,只能被继承, 且子类必须实

    继承的两种用途:

    1.继承基类的方法,并且做出自己的改变或者扩展(代码复用)

    2.声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现

    接口的功能,子类继承接口类,并且实现接口中的功能。

    一、什么是抽象类

    与java一样,python也有抽象类的概念,但是需要借助模块实现。抽象类是一个特殊的类,它的特殊之处在于只

    能被继承,不能被实例化。

    抽象类与普通类的不同之处在于:抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能被继承,

    且子类必须实现抽象方法。

    二、什么是接口

    接口可以理解为自己给使用者来调用自己功能方法的入口。

    三、为什么要用接口

    (1)可以实现权限控制,比如可以通过接口做一下访问控制,可以允许或者拒绝调用者的一些操作。

    (2)降低了使用者的使用难度,使用者只需要知道怎么调用即可,不需要知道里边的具体实现方法。

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    import abc
    
    class Interface(metaclass=abc.ABCMeta):
        # 定义接口Interface类来模仿接口的概念,python中没有interface关键字来定义一个接口。
        @abc.abstractmethod
        def read(self):  # 定接口函数read
            pass
    
        @abc.abstractmethod
        def write(self):  # 定义接口函数write
            pass
    
    class Txt(Interface):  # 文本,具体实现read和write
        def read(self):
            print('文本数据的读取方法')
    
        def write(self):
            print('文本数据的读取方法')
    
    class Sata(Interface):  # 磁盘,具体实现read和write
        def read(self):
            print('硬盘数据的读取方法')
    
        def write(self):
            print('硬盘数据的读取方法')
    

    四、抽象类与接口

    抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如all_type)和函数属性(如read、write),而接口只强调函数属性的相似性。

    抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计

    五、接口与归一化设计

    归一化让使用者无需关心对象的类是什么,只需要知道这些对象都具备某些功能就可以了,这极大地降低了使用

    者的使用难度。

    归一化使得高层的外部使用者可以不加区分的处理所有接口兼容的对象集合。

    展开全文
  • 这两个概念来自于Java,因为Java中没有多继承,是通过接口实现的多继承,所以在java中他们是两个东西; 而在Python中,因为多继承的存在,...class Payment(metaclass=ABCMeta): # 抽象类(接口类): @abstractmetho...

    这两个概念来自于Java,因为Java中没有多继承,是通过接口实现的多继承,所以在java中他们是两个东西;

    而在Python中,因为有多继承的存在,所以是同一种东西.

    from abc import ABCMeta, abstractmethod
    
    
    class Payment(metaclass=ABCMeta):  # 抽象类(接口类):
        @abstractmethod
        def pay(self): pass  # 制定了一个规范
    
        @abstractmethod
        def func(self): pass
    
    
    class Alipay(Payment):
        def __init__(self, money):
            self.money = money
    
        def pay(self):
            print('使用支付宝支付了%s' % self.money)
    
    
    class Jdpay(Payment):
        def __init__(self, money):
            self.money = money
    
        def pay(self):
            print('使用京东支付了%s' % self.money)
    
    
    class Wechatpay(Payment):
    
        def __init__(self, money):
            self.money = money
    
        def pay(self):
            print('使用微信支付了%s' % self.money)

     

    抽象类的子类通过不同的方式实现了同一个功能,有相同的方法名.

    转载于:https://www.cnblogs.com/DoingBe/p/9438322.html

    展开全文
  • Python中的接口和协议 Python语言中没有interface关键词,而且除了抽象基类,每个类都接口:类实现或继承的公开属性(方法或数据属性)。 ...在python中接口由抽象类和抽象方法去实现,接口是...

    Python中的接口和协议

    Python语言中没有interface关键词,而且除了抽象基类,每个类都有接口:类实现或继承的公开属性(方法或数据属性)。

    接口类:

    面向对象中的继承有两种用途:
    1)可以通过继承做到代码重用,并完成扩展;
    2)接口继承
    所谓的接口继承就是定义一个接口类Interface,接口类中定义了一些接口(就是函数,但这些函数都是没有具体的实现),子类继承接口类,并且实现接口中的功能。
    接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由类B去实现其中的某个功能或全部功能。在python中接口由抽象类和抽象方法去实现,接口是不能被实例化的,只能被别的类继承去实现相应的功能。

    抽象类

    抽象类只能被继承,不能被实例化。如果说类是从一堆对象中抽取相同的内容而来的,那么抽象类就是从一堆类中抽取相同的内容而来的,内容包括数据属性和函数属性。 比如我们有香蕉的类,有苹果的类,有桃子的类,从这些类抽取相同的内容就是水果这个抽象的类,你吃水果时,要么是吃一个具体的香蕉,要么是吃一个具体的桃子。。。。。。你永远无法吃到一个叫做水果的东西。
    python中,抽象类和接口类没有明确的界限,若是类中所有的方法都没有实现,则认为是一个接口,若是部分方法实现,则认为是一个抽象类,抽象类和接口类都仅用于被继承,不能被实例化。Python原生只支持抽象列不支持接口类,abc模块就是用来实现抽象类的,当一个抽象中的所有方法都没有实现时,就认为是一个接口类。

    参考文献:流畅的python, Luciano Ramalho编著

    展开全文
  • Python没有接口。接口类,抽象类:定义 制定一个规范 #必须要导入from abc ...#抽象类(接口类):强制制定一个规范,凡是继承我的类中必须pay方法,如果没有,实例化对象时会报错 @abstractmethod ...

     

    Python中没有接口。接口类,抽象类:定义 制定一个规范

    #必须要导入
    from abc import ABCMeta,abstractmethod
    class Payment(metaclass = ABCMeta): #抽象类(接口类):强制制定一个规范,凡是继承我的类中必须有pay方法,如果没有,实例化对象时会报错 @abstractmethod def pay(self): #定义了一个规范 pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print("使用支付宝支付了%s" %self.money) class Jdpay(Payment): def __init__(self,money): self.money = money def pay(self): print("使用京东支付了%s" %self.money) class WeChatpay(Payment): def __init__(self,money): self.money = money def pay(self): print("使用微信支付了%s" %self.money) def PayOnline(obj): obj.pay() a1 = Alipay(100) j1 = Jdpay(200) w1 = WeChatpay(300) PayOnline(a1) PayOnline(j1) PayOnline(w1)

      执行结果:

    使用支付宝支付了100
    使用京东支付了200
    使用微信支付了300
    

      

    转载于:https://www.cnblogs.com/tanxu05/p/9904133.html

    展开全文
  • 和Java一样,Python语言支持抽象类抽象类用于被继承,而不能被实例化。 抽象类至少一个抽象方法。所谓抽象方法,在抽象类中,只有声明,没有具体实现,具体实现必须在子类中,或者说,子类需要实现抽象类中的...
  • python 构建抽象类 就像在软件工程中一样,抽象和元数据是系统工程中体系结构的未来。 在许多语言中,都抽象和元数据。 但是,系统工程从来没有采用这种观点。 对于任何标准抽象,人们总是认为系统太独特了。 既然...
  •  3、在python原生实现抽象类的方法,但没有原生实现接口类的方法。  例题:制定一个规范就是,子类都使用pay 方法支付。       二 多态  python 中处处是多态  鸭子类型:...
  • python_抽象类(了解)

    千次阅读 2019-06-10 19:05:24
    什么是抽象类? 不完整的一种类。 具有抽象方法的类就是抽象类。(只要一个抽象方法也可) 什么是抽象方法? 不完整的方法 没有方法体的方法就是抽象方法。 什么是元类? 元类就是用来制作类的类。 正常情况下所有...
  • python抽象类和接口

    千次阅读 2018-11-17 08:50:42
    认证和权限中一个方法定义必须为固定方法名,不是的话就报错,我当时并不知道是为什么,以为是某种特性,也没有深究,今天在群里和别人聊天的时候,突然看到其他人也这个问题,然后一查资料,发现了这确实是一个...
  • 但这些函数都没有具体的实现),子类继承接口,并且实现接口中的功能~接口继承可以使得外部调用者无需关心具体的实现细节,可用相同的方式处理继承了特定接口的所有对象,这里的前提是接口需要做出一个很好的...
  • 但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。 所以抽象类中只能有抽象方法(没有实现功能),该类...
  • python没有抽象类之说,或者说抽象类=接口类(区别于接口) 继承两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口...
  • 1什么是抽象类 ...但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。 所以抽象类中只能有抽象方法(没有...
  • 像java一样python也可以定义一个抽象类。 在讲抽象类之前,先说下抽象方法的实现。 抽象方法是基类中定义的方法,但却没有任何实现。在java中,可以把方法申明成一个接口。而在python中实现一个抽象方法的简单的方法...
  • 抽象类- 抽象方法: 没有具体实现内容的方法成为抽象方法- 抽象方法的主要意义是规范了子类的行为和接口- 抽象类的使用需要借助abc模块 import abc - 抽象类:包含抽象方法的类叫抽象类,通常成为ABC类- 抽象类的...
  • 1、抽象类概念 ... 但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。  所以抽象类中只能有抽象方...
  • 但是你有没有想过,我们可以将香蕉、苹果、梨实例化,去吃香蕉、苹果、梨。但是我们却不能将水果实例化,因为我们无法吃到叫水果的这个东西。 所以抽象类中只能有抽象方法(没有实现功能),该类不能被实例化,只能...
  • 2.且只在 python 中这两个概念类似,python原生支持抽象类,且原生不支持接口类,但是由于因为python原生支持多继承,所以python中的接口类我们可以使用多继承来实现;  说明: python没有接口类,但是java里...
  • 抽象类:包含抽象方法的类,通常称为ABC类 import abc 使用: 1.可以包含抽象方法,也可以包含具体方法 2.可以方法也可以属性 3.不允许直接实例化 4.必须继承才可以使用,且继承的子类必须实现所有继承来...
  • 抽象类是一种特殊的类,只能抽象方法(没有实现功能),两个典型特点: 不能被实例化,只能被继承。 强制子类必须实现抽象方法,使用相同的方法和方法名称。 抽象类的本质还是类,指的是一组类的相似性,包括...
  • 本文实例讲述了Python面向对象之接口、抽象类与多态。分享给大家供大家参考,具体如下: 接口类 继承两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义...
  • 11. 抽象类 抽象方法:没有具体实现内容的方法称为抽象方法 抽象方法的主要意义是规范了子类的...抽象类中可以方法也可以属性 抽象类不允许直接实例化 必须继承才可以使用,且继承的子类必须实现所有继承...
  • 1、python没有接口类,有抽象类(abc模块中的metaclass = ABCMeta,@abstructmethod) 2、接口类和抽象类本质是做代码规范用的,希望在子类中实现和父类方法名字完全一样的方法 3、在java的角度上看是区别的  ...
  • ​ 学过java的应该知道java有抽象类和接口的那么python呢?(以前写的关于java抽象类的笔记java抽象类与接口) python作为一个动态语言,没有强类型的检查,而是以鸭子类型的方式提现,在执行的时候python不严格要求...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 281
精华内容 112
关键字:

python有没有抽象类

python 订阅