No puedes, nunca necesitas y realmente no quieres.
En Python, todo es un objeto. Las clases son cosas, entonces son objetos. Así son los métodos.
Hay un objeto llamado A
que es una clase. Tiene un atributo llamadostackoverflow
. Solo puede tener uno de esos atributos.
Cuando escribe def stackoverflow(...): ...
, lo que sucede es que crea un objeto que es el método, y lo asigna al stackoverflow
atributo deA
. Si escribe dos definiciones, la segunda reemplaza a la primera, de la misma manera que la asignación siempre se comporta.
Además, no desea escribir código que haga el tipo de cosas más salvajes para las que a veces se usa la sobrecarga. Así no es como funciona el lenguaje.
En lugar de tratar de definir una función separada para cada tipo de cosa que se le podría dar (lo cual tiene poco sentido ya que de todos modos no especifica tipos para parámetros de función), deje de preocuparse por qué son las cosas y comience a pensar en lo que pueden hacer .
No solo no puede escribir uno separado para manejar una tupla frente a una lista, sino que tampoco quiere o necesita hacerlo .
Todo lo que debe hacer es aprovechar el hecho de que ambos son, por ejemplo, iterables (es decir, puede escribir for element in container:
). (El hecho de que no estén directamente relacionados por herencia es irrelevante).