码迷,mamicode.com
首页 > 编程语言 > 详细

python抽象类

时间:2019-09-09 22:59:51      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:question   抽象方法   pytho   copy   res   instant   typeerror   属性   paper   

  1. python中没有接口类型
  2. 抽象类的本质还是类,指的是一组类的相似性,包括数据属性(如all_type)和函数属性(如read、write),而接口只强调函数属性的相似性。抽象类是一个介于类和接口直接的一个概念,同时具备类和接口的部分特性,可以用来实现归一化设计 
  3. 在Python3中引入了abc模块,通过@abc.abstractmethod可以更加简洁地使用抽象类,抽象方法。
  4. 抽象类的方法必须在子类中实现
    import abc
    
    
    class CopyBase(metaclass=abc.ABCMeta):
        @abc.abstractmethod
        def save(self):
            pass
    
    
    class CopyPaper(CopyBase):
        def __init__(self):
            pass
    
        def save(self):
            print("copy paper")
    
    
    class CopyQuestion(CopyBase):
        def __init__(self):
            pass
    
    
    copy_paper = CopyPaper()
    copy_paper.save()
    copy_question = CopyQuestion()
    copy_question.save()
    
    
    result:
    copy paper
    Traceback (most recent call last):
        copy_question = CopyQuestion()
    TypeError: Cant instantiate abstract class CopyQuestion with abstract methods save

     

python抽象类

标签:question   抽象方法   pytho   copy   res   instant   typeerror   属性   paper   

原文地址:https://www.cnblogs.com/ybl20000418/p/11494446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!