decoratori python code example
Example 1: decorator python
def our_decorator(func):
def function_wrapper(x):
print("Before calling " + func.__name__)
func(x)
print("After calling " + func.__name__)
return function_wrapper
@our_decorator
def foo(x):
print("Hi, foo has been called with " + str(x))
foo("Hi")
Example 2: python decorator
import functools
def repeat(num_times):
def decorator_repeat(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
for _ in range(num_times):
result= func(*args, **kwargs)
return result
return wrapper
return decorator_repeat
@repeat(num_times= 3)
def greet(name):
print(f"Hello {name}")
greet("thomas")
Example 3: python creare decoratori
def funzione_decoratore(funzione_parametro):
def wrapper():
""" nome convenzionale - wrapper significa 'incarto, confezione' """
print("... codice da eseguire prima di 'funzione_parametro' ...")
funzione_parametro()
print("... codice da eseguire dopo di 'funzione_parametro' ...")
return wrapper
def mia_funzione():
print("Hello World!")
Example 4: python creare decoratori
mia_funzione = funzione_decoratore(mia_funzione)
mia_funzione()
... codice da eseguire prima di funzione_parametro ...
Hello World!
... codice da eseguire dopo di funzione_parametro ...