我已经阅读了关于抽象基类的
python文档:
abc.abstractmethod(function)
A decorator indicating abstract methods.
Using this decorator requires that the class’s metaclass is ABCMeta or
is derived from it. A class that has a metaclass derived from ABCMeta
cannot be instantiated unless all of its abstract methods and
properties are overridden.
You can apply the @abstractmethod decorator to methods such as draw()
that must be implemented; Python will then raise an exception for
classes that don’t define the method. Note that the exception is only
raised when you actually try to create an instance of a subclass
lacking the method.
我用这个代码来测试一下:
import abc
class AbstractClass(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def abstractMethod(self):
return
class ConcreteClass(AbstractClass):
def __init__(self):
self.me = "me"
c = ConcreteClass()
c.abstractMethod()
代码很好,所以我不明白.如果我键入c.abstractMethod我得到:
>
我在这里错过什么ConcreteClass必须实现抽象方法,但我也不例外.