Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Scrivere Decoratori Parametrizzati | Padronanza Degli Iteratori e Dei Decorator in Python
Concetti di Programmazione Funzionale in Python

bookScrivere Decoratori Parametrizzati

Scorri per mostrare il menu

Quando si desidera che un decoratore si comporti in modo diverso a seconda di un input, è necessario creare un decoratore parametrizzato. A differenza dei decoratori regolari, che accettano solo la funzione come argomento, i decoratori parametrizzati accettano i propri argomenti, permettendo di controllare dinamicamente il loro comportamento. Questo è particolarmente utile quando si vuole riutilizzare un decoratore in più situazioni con configurazioni diverse.

Struttura di un decoratore parametrizzato:

  1. La funzione esterna accetta gli argomenti del decoratore;
  2. La funzione intermedia è il decoratore vero e proprio che prende la funzione da decorare;
  3. La funzione interna incapsula e controlla l'esecuzione della funzione originale.

Questo approccio a livelli consente di passare argomenti al decoratore, che saranno poi disponibili quando viene chiamata la funzione decorata.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. In che modo un decoratore parametrizzato si differenzia da un decoratore regolare?

2. Perché potresti voler passare argomenti a un decoratore?

question mark

In che modo un decoratore parametrizzato si differenzia da un decoratore regolare?

Seleziona la risposta corretta

question mark

Perché potresti voler passare argomenti a un decoratore?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 4. Capitolo 3
some-alt