https://replit.com/@SorinBetisor/decoratori-avansati-python?v=1
Decoratorii avansați cu *args
și **kwargs
sunt o caracteristică puternică a limbajului Python. Acești decoratori permit programatorilor să definească funcții care pot accepta un număr variabil de argumente poziționale și de argumente de tip cheie, fără a fi nevoie să definească în avans numărul exact de argumente pe care funcția le va primi.
Un exemplu de utilizare a decoratorilor *args
și **kwargs
poate fi atunci când dorim să definim o funcție care poate primi orice număr de argumente poziționale sau de tip cheie și să le afișeze pe toate. În loc să definim o funcție lungă și confuză cu o mulțime de argumente, putem utiliza decoratorii *args
și **kwargs
pentru a face codul nostru mai curat și mai ușor de citit.
def print_arguments(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(f"{key}: {value}")
print_arguments("Hello", "world", name="John", age=30)
Această funcție va afișa următorul output:
Hello
world
name: John
age: 30
În acest exemplu, decoratorul *args
este utilizat pentru a accepta un număr variabil de argumente poziționale, în timp ce decoratorul **kwargs
este utilizat pentru a accepta un număr variabil de argumente de tip cheie.
Decoratorii avansați cu *args
și **kwargs
sunt o caracteristică puternică a limbajului Python și pot fi utilizați într-o varietate de scenarii pentru a face codul mai curat și mai ușor de citit.