abc benutzen, kann ich abstrakte Klassen erstellen folgendes mit:Wie erstellt man abstrakte Klassen mit ABC, ohne eine abstrakte Methode zu verwenden?
from abc import ABC, abstractmethod
class A(ABC):
@abstractmethod
def foo(self):
print('foo')
class B(A):
pass
obj = B()
Dies wird fehlschlagen, da B
nicht die Methode foo
definiert hat. Dies ahmt die abstrakte Methodenfunktionalität in Java nach.
Ich wollte wissen, ob die abstrakte Klassenfunktionalität auch in Python vorhanden ist, wo die Instantiierung einer Klasse ohne abstrakte Methoden verhindert wird.
Ich bekomme Ihre Frage nicht. Was meinst du damit, wo die Instanziierung einer Klasse verhindert wird, ohne abstrakte Methoden zu haben? Sie möchten die Klasse selbst implementieren, um abstrakte Methoden zu implementieren? – Vinny
In Java sind abstrakte Methoden und abstrakte Klassen zwei verschiedene Konzepte. Abstrakte Methoden sollten von den Unterklassen definiert werden und abstrakte Klassen können nicht instanziiert werden. Aber im Abc-Modul von Python (nach meinem Verständnis) sind beide miteinander verbunden. Gibt es eine Möglichkeit, eine abstrakte Klasse zu definieren, ohne irgendwelche Methoden als abstrakte Methoden zu dekorieren? –