Klassen die das Interface definieren haben als Metaklasse abc.ABCMeta
Methoden die als abstrakte Methode definiert werden, benutzen einen der folgenden Dekoratoren
Properties die abstrakt sind werden mit dem @property- und anschließend mit dem @abc.abstractmethod
die Prüfung ob eine Klasse ein Interface implementiert erfolgt erst bei der Instanzierung der Klasse
Ob eine Methode die implementiert wird dann auch die gleichen Parameter implementiert wird nicht geprüft - einen Hinweis gibt es maximal durch die IDE
import abc
class MyMixedClass(metaclass=abc.ABCMeta):
def ausgabe(self):
print("Hallo aus MyMixdClass")
@abc.abstractmethod
def blubber(self, name):
pass
class MyImplementation(MyMixedClass):
def blubber(self, name):
print(f"Grüße aus Bubbler {name}")