Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
python:singledispatch [2020/07/27 11:58] root angelegt |
python:singledispatch [2020/07/27 13:14] (aktuell) root |
||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
* also eine Methode kann nicht mehrfach implementiert sein und anhand unterschiedlicher übergebener Parameter die passende Implementation gewählt werden | * also eine Methode kann nicht mehrfach implementiert sein und anhand unterschiedlicher übergebener Parameter die passende Implementation gewählt werden | ||
* es ist nur überschreiben implementiert -> eine Klasse erbt von einer anderen und implementiert eine Methode die in der Eltern-Klasse schon implementiert war noch mal selbst -> es wird dann die der Kind-Klasse genommen und nicht die geerbte | * es ist nur überschreiben implementiert -> eine Klasse erbt von einer anderen und implementiert eine Methode die in der Eltern-Klasse schon implementiert war noch mal selbst -> es wird dann die der Kind-Klasse genommen und nicht die geerbte | ||
+ | * functools.singledispatch bietet eine Möglichkeit die dieses Verhalten simuliert | ||
+ | * ist ein Dekorator | ||
+ | * praktisch wird ein Objekt mit dem gewünschten Namen geschaffen, mehrere anonyme Varianten der Methode registriert (mit verschiedener Anzahl Parameter) und beim Aufruf der Methode entscheidet die Wrapper-Methode mit dem gewünschten Namen welche der anonymen Methoden aufgerufen werden muss | ||
+ | * Dokumentation: |