Junior — Middle
Εξηγήστε την έννοια των διακοσμητών στην Python και πώς χρησιμοποιούνται για την αλλαγή της συμπεριφοράς των συναρτήσεων.
sobes.tech AI
Απάντηση από AI
Οι διακοσμητές (decorators) στην Python είναι συναρτήσεις που λαμβάνουν μια άλλη συνάρτηση και επιστρέφουν μια νέα συνάρτηση με τροποποιημένη ή επεκταμένη συμπεριφορά, χωρίς να αλλάζουν τον αρχικό κώδικα της διακοσμημένης συνάρτησης.
Χρησιμοποιούνται συχνά για:
- Καταγραφή κλήσεων
- Έλεγχο δικαιωμάτων πρόσβασης
- Cache αποτελεσμάτων
- Μέτρηση χρόνου εκτέλεσης
Ένα απλό παράδειγμα διακοσμητή που εμφανίζει ένα μήνυμα πριν και μετά την κλήση της συνάρτησης:
def decorator(func):
def wrapper(*args, **kwargs):
print("Πριν την κλήση της συνάρτησης")
result = func(*args, **kwargs)
print("Μετά την κλήση της συνάρτησης")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Γειά σου, {name}!")
say_hello("Κόσμε")
Το αποτέλεσμα θα είναι:
Πριν την κλήση της συνάρτησης
Γειά σου, Κόσμε!
Μετά την κλήση της συνάρτησης
Έτσι, οι διακοσμητές επιτρέπουν την δυναμική αλλαγή της συμπεριφοράς των συναρτήσεων χωρίς να αλλάζουν τον αρχικό κώδικα.