Python中的抽象方法

问题:

我在使用继承Python方面遇到麻烦。虽然这个概念在Java中似乎对我来说太简单了,但到目前为止,我一直无法理解Python,至少令我感到惊讶。
我有一个原型:

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

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

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

回答:

沿着这些线路,使用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

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Abstract methods in Python

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 38 = 47