https://replit.com/@SorinBetisor/python-decoratori?v=1
https://pythontutor.com/visualize.html#mode=edit
Astăzi vom discuta despre funcțiile în Python ca obiecte de primă clasă și despre funcțiile înglobate.
În Python, funcțiile sunt obiecte de primă clasă, ceea ce înseamnă că, la fel ca și alte obiecte, ele pot fi atribuite la variabile, pot fi transmise ca argumente și pot fi returnate de alte funcții. Această caracteristică face ca programarea în Python să fie foarte flexibilă și puternică.
Funcțiile înglobate sunt funcții definite în interiorul altei funcții. Acestea sunt folosite adesea pentru a împărtăși cod între mai multe funcții și pentru a face codul mai ușor de citit și de întreținut.
Un exemplu de utilizare a funcțiilor înglobate este în cazul decoratoarelor. Decoratorii sunt funcții care iau o altă funcție ca argument și returnează o altă funcție. Acestea sunt utile pentru a adăuga funcționalitate suplimentară la o funcție fără a modifica codul acesteia.
Iată un exemplu de utilizare a funcțiilor înglobate într-un decorator:
def decorator(func):
def wrapper():
print("Before function call")
func()
print("After function call")
return wrapper
@decorator
def hello():
print("Hello world")
hello()
În acest exemplu, decoratorul decorator
primește ca argument o funcție și returnează o funcție înglobată numită wrapper
. Această funcție înglobată adaugă funcționalitate suplimentară la funcția hello
prin afișarea unor mesaje înainte și după apelarea acesteia.
În concluzie, funcțiile în Python ca obiecte de primă clasă și funcțiile înglobate sunt caracteristici puternice și utile ale limbajului Python. Acestea permit programatorilor să scrie cod mai flexibil și mai ușor de citit și de întreținut.