• Python kann kein Methoden-Overloading
    • 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
  • 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: https://www.blog.pythonlibrary.org/2016/02/23/python-3-function-overloading-with-singledispatch/