IT-Lexikon › Programmierung › Duck Typing

Duck Typing

Programmierung Svenska → Aktualisiert: 2026-09-08

„Wenn es wie eine Ente watschelt und wie eine Ente quakt, ist es eine Ente" — in dynamischen Sprachen genügt es, dass ein Objekt die richtigen Methoden oder Attribute besitzt, egal welchen Typs es ist.

Typisch für Python, Ruby, JavaScript: def play(audio): verlangt nur, dass audio eine play()-Methode hat — nicht, dass es von einer AudioBase erbt. Pythons __iter__, __len__, __call__ sind Duck-Typing-Protokolle.

Das Gegenstück in statischen Sprachen: structural typing (TypeScript: { play(): void }) oder Traits/Protocols (Rust, Swift). Der Trade-off: schnelle Iteration gegen Compile-Time-Sicherheit. PEP 544 (Python Protocols) holt structural typing nach Python.

← Zurück zum Lexikon