Junior — Middle
Erklären Sie das Konzept des Duck Typing und wie es sich von statischer Typisierung in der Programmierung unterscheidet.
sobes.tech KI
Antwort von AI
Duck typing ist ein Konzept in der Programmierung, bei dem der Typ eines Objekts nicht anhand seiner Klasse oder Schnittstelle bestimmt wird, sondern anhand des Vorhandenseins bestimmter Methoden und Eigenschaften. Wenn ein Objekt sich wie "Ente" verhält (die notwendigen Methoden hat), gilt es als passend.
Unterschied zur statischen Typisierung:
- Bei statischer Typisierung werden die Typen zur Kompilierungszeit überprüft, und Objekte müssen explizit den definierten Typen entsprechen.
- Beim Duck Typing erfolgt die Überprüfung zur Laufzeit, und nur die Kompatibilität der Schnittstelle (Methoden/Eigenschaften) ist relevant, nicht Vererbung oder deklarierte Typen.
Beispiel in Python (Duck Typing):
class Duck:
def quack(self):
print("Quak quak")
class Person:
def quack(self):
print("Ich kann wie eine Ente quaken")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Quak quak
make_it_quack(Person()) # Ich kann wie eine Ente quaken
Hier kümmert sich die Funktion nicht um den Objekttyp, sondern nur um das Vorhandensein der Methode quack.