Python中的抽象方法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (98)

我在使用Python继承方面遇到了困难。目前为止,我还无法理解Python讶。

我有一个原型如下:

class Shape():
   def __init__(self, shape_name):
       self.shape = shape_name

class Rectangle(Shape):
   def __init__(self, name):
       self.shape = name

在上面的代码中,如何为所有子类创建一个需要实现的抽象方法?

提问于
用户回答回答于

在介绍ABC之前,你会经常看到这种情况。

class Base(object):
    def go(self):
        raise NotImplementedError("Please Implement this method")


class Specialized(Base):
    def go(self):
        print "Consider me implemented"
用户回答回答于

沿着这些路径,使用ABC

import abc

class Shape(object):
    __metaclass__ = abc.ABCMeta

    @abc.abstractmethod
    def method_to_implement(self, input):
        """Method documentation"""
        return

另外阅读这个很好的教程:http : //www.doughellmann.com/PyMOTW/abc/

你也可以看看在python中引入ABC之前使用的zope.interface

扫码关注云+社区

领取腾讯云代金券