Von hier:
Code: Select all
abc.abstractmethod(function)Die Verwendung dieses Dekorators erfordert, dass die Metaklasse der Klasse ABCMeta ist oder
davon abgeleitet ist. Eine Klasse mit einer von ABCMeta abgeleiteten Metaklasse
kann nicht instanziiert werden, es sei denn, alle ihre abstrakten Methoden und
Eigenschaften werden überschrieben.
Und hier
Sie können den Dekorator @abstractmethod auf Methoden wie draw()
anwenden, die implementiert werden müssen; Python löst dann eine Ausnahme für
Klassen aus, die die Methode nicht definieren. Beachten Sie, dass die Ausnahme nur
ausgelöst wird, wenn Sie tatsächlich versuchen, eine Instanz einer Unterklasse
zu erstellen, der die Methode fehlt.
Ich habe diesen Code verwendet, um das zu testen:
Code: Select all
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()
Code: Select all
Mobile version