Non puoi, non devi mai e non vuoi davvero.
In Python, tutto è un oggetto. Le classi sono cose, quindi sono oggetti. Così sono i metodi.
C'è un oggetto chiamato A
che è una classe. Ha un attributo chiamato stackoverflow
. Può avere solo uno di questi attributi.
Quando scrivi def stackoverflow(...): ...
, succede che crei un oggetto che è il metodo e lo assegni stackoverflow
all'attributo di A
. Se scrivi due definizioni, la seconda sostituisce la prima, nello stesso modo in cui si comporta sempre il compito.
Inoltre, non si desidera scrivere codice che fa il più selvaggio per il genere di cose per le quali viene talvolta utilizzato il sovraccarico. Non è così che funziona la lingua.
Invece di provare a definire una funzione separata per ogni tipo di cosa che potresti ricevere (il che ha poco senso dal momento che non specifichi comunque i tipi per i parametri della funzione), smetti di preoccuparti di cosa sono e inizia a pensare a cosa possono fare .
Non solo non puoi scriverne uno separato per gestire una tupla rispetto a un elenco, ma non vuoi né ne hai bisogno .
Tutto quello che fai è approfittare del fatto che sono entrambi, ad esempio, iterabili (cioè puoi scrivere for element in container:
). (Il fatto che non siano direttamente correlati per eredità è irrilevante.)