Una guida completa al sovraccarico dei metodi in Python (con esempi)

Pubblicato: 2022-04-23

Il sovraccarico è la capacità di una funzione, metodo o operatore di funzionare in modo diverso quando si passano parametri diversi allo stesso. Il sovraccarico del metodo o il sovraccarico della funzione in Python hanno termini comunemente usati. Alcuni dei principali vantaggi dell'overloading sono che puoi utilizzare un metodo in più modi, il che ti aiuta a mantenere il tuo codice più pulito e rimuove la complessità quando lavori con un team.

Sommario

Che cos'è il sovraccarico del metodo?

Nella programmazione orientata agli oggetti, l'overload del metodo viene utilizzato in scenari in cui, per un oggetto specifico, un metodo particolare può essere chiamato in più di un modo in base alle esigenze del progetto.

Esempi di Method Overloading in Python sono discussi in dettaglio più avanti nell'articolo.

Che cos'è l'override del metodo?

L'override del metodo in Python è simile all'overloading del metodo, tranne per il fatto che l'override del metodo si verifica tra una sottoclasse e una superclasse. Ha gli stessi parametri di quando vengono chiamati i metodi. Tuttavia, si comportano in modo diverso a causa dell'override di alcune funzionalità dalla superclasse.

Esempio di sovrascrittura del metodo

classe X:

def metodo1(auto):

print('Sono la prima caratteristica della classe X')

def metodo2(auto):

print('Sono la seconda caratteristica della classe X')

classe Y(X):

def metodo1(auto):

print('Sono la prima caratteristica modificata della classe X nella classe Y')

def metodo3(auto):

print('Sono una caratteristica della classe Y')

obj = Y()

obj.metodo1()

Produzione:

Sono la prima caratteristica modificata della classe X nella classe Y

metodo1 è stato sovrascritto dalla classe Y.

Impara i corsi di Data Science online su upGrad

Sovraccarico del metodo in Python

Il problema con il sovraccarico del metodo in Python è che Python non lo supporta per impostazione predefinita. Tuttavia, ci sono soluzioni alternative per fare lo stesso.

Il problema

Consideriamo il seguente codice:

def aggiungi(a, b):

s = a + b

stampa/i

def add(a, b, c):

s = a + b + c

stampa/i

# add(8, 9) mostra un errore

aggiungi(8, 9, 2)

A prima vista, il codice sembra buono, ma quando provi ad eseguirlo con due argomenti, Python ti mostrerà un errore perché in Python, quando hai più di un metodo con lo stesso nome ma un diverso numero di argomenti, solo il è possibile utilizzare l'ultimo metodo definito.

Ci sono due modi diversi per superare questo problema di sovraccarico dei metodi in Python.

1: L'utilizzo degli stessi metodi differisce in base al tipo di dati degli argomenti

Possiamo vedere un argomento per conoscere il tipo di dati, insieme a *args che consente di passare un numero variabile di argomenti a un metodo in Python. Possiamo quindi utilizzare le istruzioni if ​​per controllare come si comporta il metodo in base all'input.

CODICE:

def add(dt, *args):

se dt =='int':

s = 0

se dt =='str':

s = ”

per x in argomenti:

s = s + x

stampa/i

add('int', 11, 9)

add(“str”, “Ciao”, “Come stai?”)

Produzione:

20

Ciao, come stai?

Questa è stata la prima soluzione alternativa per implementare l'overloading del metodo in Python.

Esplora i nostri corsi di scienza dei dati popolari

Programma post-laurea esecutivo in Data Science da IIITB Programma di certificazione professionale in Data Science per il processo decisionale aziendale Master of Science in Data Science presso l'Università dell'Arizona
Programma di certificazione avanzato in Data Science da IIITB Programma di certificazione professionale in Data Science e Business Analytics presso l'Università del Maryland Visualizza tutti i corsi di scienza dei dati

2: Utilizzo di Multiple Dispatch Decorator (modo più efficiente)

Multiple Dispatch Decorator è meno di una soluzione alternativa e funziona esattamente come dovrebbe. Puoi installarlo usando pip3.

pip3 installa più spedizioni

CODICE:

da spedizioni multiple di importazione

@dispatch(int,int) # per 2 argomenti interi

def add(n1,n2):

s = n1 + n2

stampa/i

@dispatch(int,int,int) # per 3 argomenti interi

def add(n1,n2,n3):

s = n1 + n2 + n3

stampa/i

@dispatch(float,float,float) # per argomenti float

def add(n1,n2,n3):

s = n1 + n2 + n3

stampa/i

aggiungi(5,2)

aggiungi(6,1,4)

aggiungi(3.4,1.2,5.6)

Produzione:

7

11

10.2

Durante l'esecuzione, il dispatcher crea un nuovo oggetto che memorizza diverse implementazioni del metodo e decide il metodo da selezionare in base al tipo e al numero di argomenti passati durante la chiamata del metodo. In questo modo il metodo di sovraccarico in Python è più efficiente.

Leggi i nostri popolari articoli sulla scienza dei dati

Percorso di carriera nella scienza dei dati: una guida completa alla carriera Crescita professionale di Data Science: il futuro del lavoro è qui Perché la scienza dei dati è importante? 8 modi in cui la scienza dei dati porta valore al business
Rilevanza della scienza dei dati per i manager La scheda tecnica definitiva per la scienza dei dati che ogni data scientist dovrebbe avere I 6 principali motivi per cui dovresti diventare un data scientist
Un giorno nella vita di Data Scientist: cosa fanno? Mito sfatato: la scienza dei dati non ha bisogno di codifica Business Intelligence vs Data Science: quali sono le differenze?

Conclusioni

Se desideri entrare nel campo della scienza dei dati, Python è un buon primo passo da compiere. Per approfondire e approfondire l'argomento, puoi dare un'occhiata ai corsi di certificazione online avanzati come l' Executive Program in Data Science di IIIT-Bangalore in associazione con upGrad . Questo programma copre gli aspetti importanti dell'argomento e offre molti vantaggi aggiuntivi come assistenza sul lavoro, tutoraggio 1:1, supporto online, lezioni dal vivo e moduli aggiuntivi opzionali per gli appassionati che desiderano migliorare ulteriormente le competenze.

Qual è la differenza tra una funzione e un metodo in Python?

In Python ci sono due tipi di funzioni: funzioni integrate e funzioni definite dall'utente. print() e len() sono esempi di funzioni integrate. Le funzioni definite dall'utente in Python sono funzioni che possiamo definire noi stessi per eseguire un'attività specifica più di una volta in un programma tipico. Il metodo è proprio come una funzione tranne per il fatto che i metodi appartengono a una classe e possono essere chiamati solo su un oggetto. (Sintassi: obj.method())

Come scelgo tra Python e R?

Python e R sono i due principali linguaggi utilizzati per Data Science. Mentre cosa usare dipende da diversi fattori come l'azienda a cui miri, il tipo di progetto, i requisiti del cliente, ecc., in genere, se sei un principiante nella programmazione, lavori in un ambiente ingegneristico costruendo applicazioni su larga scala, Python è un'ottima scelta. D'altra parte, se hai una precedente esperienza di programmazione e desideri eseguire rapidamente attività di analisi dei dati e visualizzare i tuoi dati utilizzando una grafica meravigliosa per prendere una decisione migliore statisticamente, R è la strada da percorrere.

Quanto tempo ci vuole per padroneggiare Data Science?

Ognuno ha il proprio ritmo di apprendimento. Anche se, per un principiante senza precedenti esperienze di programmazione, ci vorranno circa 6-7 mesi per rafforzare i tuoi fondamenti. Pubblicalo, dipende ancora da quanto ti eserciti e dai progetti su cui lavorare. Se segui una certificazione online, dovresti essere in grado di padroneggiarla in circa un anno.