Vous ne pouvez pas, jamais besoin et ne voulez pas vraiment.
En Python, tout est un objet. Les classes sont des choses, donc ce sont des objets. Les méthodes aussi.
Il y a un objet appelé A
qui est une classe. Il a un attribut appelé stackoverflow
. Il ne peut avoir qu'un seul de ces attributs.
Lorsque vous écrivez def stackoverflow(...): ...
, ce qui se passe, c'est que vous créez un objet qui est la méthode et que vous l'assignez à l' stackoverflow
attribut de A
. Si vous écrivez deux définitions, la seconde remplace la première, de la même manière que l'affectation se comporte toujours.
De plus, vous ne voulez pas écrire de code qui fasse le plus fou des choses pour lesquelles la surcharge est parfois utilisée. Ce n'est pas ainsi que fonctionne la langue.
Au lieu d'essayer de définir une fonction distincte pour chaque type de chose qui pourrait vous être donné (ce qui n'a pas de sens puisque vous ne spécifiez pas de types pour les paramètres de fonction de toute façon), arrêtez de vous soucier de ce que sont les choses et commencez à penser à ce qu'elles peuvent faire .
Non seulement vous ne pouvez pas en écrire un distinct pour gérer un tuple par rapport à une liste, mais vous ne voulez pas ou n'en avez pas besoin .
Tout ce que vous faites est de profiter du fait qu'ils sont tous les deux, par exemple, itérables (c'est-à-dire que vous pouvez écrire for element in container:
). (Le fait qu'ils ne soient pas directement liés par héritage n'est pas pertinent.)