Ένας decorator είναι μια συνάρτηση που περιτυλίγει μια άλλη συνάρτηση για να προσθέσει συμπεριφορά, χωρίς να τροποποιήσει τον αρχικό κώδικα. Εφαρμόζεται με τη σύνταξη @decorator πάνω από μια συνάρτηση — ένας καθαρός τρόπος για να προσθέσετε cross-cutting concerns όπως logging, timing, caching ή έλεγχο πρόσβασης.
Πώς λειτουργούν τα decorators
():
():
()
result = func(*args, **kwargs)
()
result
wrapper
():
()
greet()
