Metodo statico di Python

Metodo statico Python

In questo breve post, impareremo come creare e utilizzare un metodo statico in Python. Esamineremo anche quali vantaggi e svantaggi offrono i metodi statici rispetto ai metodi di istanza. Cominciamo.

Cos’è un metodo statico?

I metodi statici in Python sono estremamente simili ai metodi di livello di classe, con la differenza che un metodo statico è legato a una classe piuttosto che agli oggetti per quella classe. Ciò significa che un metodo statico può essere chiamato senza un oggetto per quella classe. Ciò significa anche che i metodi statici non possono modificare lo stato di un oggetto poiché non sono ad esso vincolati. Vediamo come possiamo creare metodi statici in Python.

Creazione di metodi statici in Python

I metodi statici Python possono essere creati in due modi. Vediamo ciascuno dei modi qui:

Utilizzando staticmethod()

Passiamo direttamente al frammento di codice di esempio su come utilizzare l’approccio staticmethod():

class Calculator:

    def addNumbers(x, y):
        return x + y

# crea il metodo statico addNumbers
Calculator.addNumbers = staticmethod(Calculator.addNumbers)

print('Product:', Calculator.addNumbers(15, 110))

Nota che abbiamo chiamato addNumbers che abbiamo creato senza un oggetto. Quando eseguiamo questo programma, ecco l’output che otterremo: Non ci sono state sorprese. Questo approccio è controllato poiché in ogni punto è possibile creare un metodo statico da un metodo di classe. Vediamo un altro approccio con lo stesso esempio qui.

Utilizzando @staticmethod

Questo è un modo più sottile per creare un metodo statico poiché non dobbiamo fare affidamento su una definizione di istruzione di un metodo come metodo di classe e renderlo statico in ogni punto in cui lo rendiamo statico. Utilizziamo questa annotazione in un frammento di codice:

class Calculator:

    # crea il metodo statico addNumbers
    @staticmethod
    def addNumbers(x, y):
        return x + y

print('Product:', Calculator.addNumbers(15, 110))

Quando eseguiamo questo programma, ecco l’output che otterremo: Questo era effettivamente un modo molto migliore per creare un metodo statico poiché l’intenzione di mantenere il metodo statico è chiara non appena lo creiamo e lo contrassegniamo con l’annotazione @staticmethod.

Vantaggi del metodo statico in Python

I metodi statici hanno un caso d’uso molto chiaro. Quando abbiamo bisogno di una funzionalità non relativa a un oggetto ma relativa all’intera classe, creiamo un metodo statico. Questo è molto vantaggioso quando dobbiamo creare metodi di utilità poiché di solito non sono legati al ciclo di vita di un oggetto. Infine, nota che in un metodo statico non è necessario passare self come primo argomento. Riferimento API: Documentazione di Python

Source:
https://www.digitalocean.com/community/tutorials/python-static-method