Usa i decoratori Python

Jan 19 2023
I decoratori sono un potente strumento che può essere utilizzato per aggiungere funzionalità a funzioni e classi esistenti senza modificarne il codice. Possono essere utilizzati per attività come registrazione, memorizzazione nella cache e convalida e possono aiutare a mantenere il codice organizzato e gestibile.

I decoratori sono un potente strumento che può essere utilizzato per aggiungere funzionalità a funzioni e classi esistenti senza modificarne il codice. Possono essere utilizzati per attività come registrazione, memorizzazione nella cache e convalida e possono aiutare a mantenere il codice organizzato e gestibile.

Quindi.. cosa sono i decoratori?

Un decoratore è un tipo speciale di funzione che accetta un'altra funzione come argomento e restituisce una nuova funzione. La nuova funzione è in genere una versione modificata della funzione originale e viene spesso utilizzata per aggiungere funzionalità aggiuntive.

Come usare è?

Un decoratore viene applicato a una funzione oa una classe posizionando il simbolo "@" seguito dal nome della funzione del decoratore prima della definizione della funzione o della classe.

Ecco un esempio di un semplice decoratore che aggiunge funzionalità di registrazione a una funzione:

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("Calling function:", func.__name__)
        result = func(*args, **kwargs)
        print("Function returned:", result)
        return result
    return wrapper

@log_decorator
def my_function(x, y):
    return x + y

my_function(1, 2)

L'output di questo codice sarà:

Calling function: my_function
Function returned: 3

I decoratori di dosi possono ottenere valori?

SÌ! Puoi anche passare argomenti ai decoratori molto facilmente

def repeat(num):
    def repeat_decorator(func):
        def wrapper(*args, **kwargs):
            for i in range(num):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return repeat_decorator

@repeat(num=3)
def my_function(x):
    return x * x

print(my_function(3))

Ricordare?

i decoratori sono tipi speciali di funzioni che accettano un'altra funzione come argomento e restituiscono una nuova funzione, solitamente una versione modificata della funzione originale, utilizzata per aggiungere funzionalità. Vengono applicati a una funzione oa una classe posizionando il simbolo "@" seguito dal nome della funzione decoratore prima della definizione della funzione o della classe. Possono anche accettare argomenti per personalizzare ulteriormente il comportamento del decoratore.

Buona fortuna Silo