[python]抽象方法

抽象方法

個人理解抽象方法就是:父類的一個方法,繼承的全部子類都必需要實現這個方法,不然報錯。python

舉例說明

class Base(object):
    def _method(self):
        raise NotImplementedError(u"出錯了,你沒有實現這個抽象方法")

class A(Base):
    def _method(self):
        print u"重寫了這個方法,就不會報錯了!"

這個例子,實現了抽象方法的功能。還有一個更加pythonic的方法,就是用abc.ABCMetacode

ABCMeta

import abc
class Base(object):
    __metaclass__ = abc.ABCMeta

    @abc.abstractmethod
    def _method(self):
        return

父類經過定義__metaclass__ = abc.ABCMeta,而後經過@abc.abstractmethod裝飾器修飾的方法,就變成了抽象方法了。若是子類不實現就會報錯。繼承

相關文章
相關標籤/搜索