Sie können, müssen und wollen nicht wirklich.
In Python ist alles ein Objekt. Klassen sind Dinge, also Objekte. Methoden sind es auch.
Es gibt ein Objekt namens, A
das eine Klasse ist. Es hat ein Attribut namens stackoverflow
. Es kann nur ein solches Attribut haben.
Wenn Sie schreiben def stackoverflow(...): ...
, erstellen Sie ein Objekt, das die Methode ist, und weisen es dem stackoverflow
Attribut von zu A
. Wenn Sie zwei Definitionen schreiben, ersetzt die zweite die erste, so wie sich die Zuweisung immer verhält.
Sie möchten außerdem keinen Code schreiben, der die wilderen Dinge tut, für die Überladung manchmal verwendet wird. So funktioniert die Sprache nicht.
Anstatt zu versuchen, eine separate Funktion für jeden Typ von Dingen zu definieren, die Ihnen gegeben werden könnten (was wenig Sinn macht, da Sie ohnehin keine Typen für Funktionsparameter angeben), machen Gedanken mehr darüber, was Dinge sind, und überlegen Sie, was sie tun können .
Sie können nicht nur kein separates schreiben, um ein Tupel gegen eine Liste zu verarbeiten, sondern möchten oder müssen es auch nicht .
Alles, was Sie tun, ist die Tatsache auszunutzen, dass beide beispielsweise iterierbar sind (dh Sie können schreiben for element in container:
). (Die Tatsache, dass sie nicht direkt durch Vererbung verbunden sind, ist irrelevant.)