HOWTO · Python

Sovraccarico di funzioni in Python

Questo tutorial dimostra cos'è l'overload di funzioni in Python.

In questa pagina

Questo articolo parla del sovraccarico delle funzioni Python e di come eseguirlo. Di seguito abbiamo incluso metodi e programmi di esempio da seguire.

Definizione di sovraccarico

In programmazione, il termine sovraccarico aiuta una funzione ad agire in vari modi in base agli argomenti e ai parametri in essa memorizzati. Il sovraccarico consente il riutilizzo ripetuto di un programma; ad esempio, invece di passare più metodi non troppo diversi tra loro, è possibile passare un solo metodo e può essere sottoposto a overload. Il sovraccarico di una funzione rende anche un programma più chiaro e meno complesso.

Non dovresti usare eccessivamente questo processo perché crea confusione durante la gestione di diverse funzioni sovraccaricate.

Sovraccarico di funzioni in Python

In Python, una funzione può essere creata e chiamata più volte passandoci molti argomenti o parametri. Questo processo di chiamare la stessa funzione, ancora e ancora, utilizzando argomenti o parametri diversi, è chiamato sovraccarico della funzione.

class Home:
    def Knock(self, person_one=None, person_two=None):
        if person_one is not None and person_two is None:
            print("Hi, " + person_one)
        elif person_one is not None and person_two is not None:
            print("Hi, " + person_one + " and " + person_two)
        else:
            print("Who's there? ")


DefObj = Home()

DefObj.Knock()
DefObj.Knock("Rick", "Morty")
DefObj.Knock("Sam")

In questo programma, definiamo inizialmente una classe chiamata Home, in cui definiamo una funzione Knock. Successivamente, l’istruzione condizionale if-else fornisce condizioni diverse in base a input diversi. Quindi creiamo un oggetto chiamato DefObj che la classe principale Home usa per chiamare la funzione Knock. Infine, abbiamo chiamato la funzione Knock più di una volta utilizzando argomenti diversi. Pertanto, abbiamo utilizzato l’overload delle funzioni in questo programma.

Usa Multiple Dispatch Decorator per eseguire il sovraccarico delle funzioni in Python

I Decoratori in Python sono gli strumenti che aiutano a modificare il comportamento di una particolare classe o funzione nel programma. Sono utilizzati per aggiungere altre funzioni per modificare la funzione esistente senza modificarla effettivamente.

Un Dispatch Decorator ti aiuta a selezionare le implementazioni da un numero di esecuzioni dalla stessa funzione astratta in base all’elenco di tipi dato.

Dai un’occhiata al programma di esempio qui sotto:

from multipledispatch import dispatch


@dispatch(float, float, float)
def summation(float_1, float_2, float_3):
    total = float_1 + float_2 + float_3
    print(total)


@dispatch(int, int, int)
def difference(int_1, int_2, int_3):
    diff = int_1 - int_2 - int_3
    print(diff)


@dispatch(int, int, int)
def multiply(int_1, int_2, int_3):
    product = int_1 * int_2 * int_3
    print(product)


summation(6.9, 3.14, 7.12)
difference(9, 6, 3)
product(3, 3, 3)

Produzione:

17.16
0
27

Qui puoi passare qualsiasi tipo di dati al dispatcher. Il dispatcher viene utilizzato per creare un oggetto con diverse implementazioni. Durante l’esecuzione, la funzione appropriata viene selezionata utilizzando semplicemente il nome della funzione, il numero di argomenti e il tipo di dati degli argomenti.