Decorators στην Python
Python Οδηγός - Μάθημα 19: Decorators στην Python
Οι decorators στην Python είναι μία πολύ ισχυρή και ευέλικτη δυνατότητα που επιτρέπει να τροποποιούμε ή να επεκτείνουμε τη λειτουργικότητα μιας συνάρτησης ή κλάσης χωρίς να την τροποποιούμε άμεσα. Στην ουσία, οι decorators είναι συναρτήσεις που δέχονται άλλες συναρτήσεις ως είσοδο και επιστρέφουν μια νέα συνάρτηση που συνήθως προσθέτει νέα συμπεριφορά στην αρχική.
Οι decorators χρησιμοποιούνται για να τροποποιήσουν ή να προσθέσουν χαρακτηριστικά στις συναρτήσεις με έναν πιο "καθαρό" και επαναχρησιμοποιήσιμο τρόπο.
Πώς Λειτουργούν οι Decorators:
Οι decorators είναι συναρτήσεις που παίρνουν άλλες συναρτήσεις ως παράμετρο και επιστρέφουν μια νέα συνάρτηση. Αυτή η νέα συνάρτηση μπορεί να κάνει κάτι πριν ή μετά από την εκτέλεση της αρχικής συνάρτησης, ή ακόμη και να την αντικαταστήσει εντελώς.
Βήματα:
- Η συνάρτηση decorator δέχεται μια άλλη συνάρτηση ως όρισμα.
- Επιστρέφει μια νέα συνάρτηση που τροποποιεί ή επεκτείνει την αρχική συνάρτηση.
- Η νέα συνάρτηση εκτελεί την αρχική συνάρτηση και στη συνέχεια προσθέτει επιπλέον λειτουργικότητα.
Παράδειγμα 1: Βασικός Decorator
Αποτέλεσμα:
Παράδειγμα 2: Χρήση @
για Διακοσμητές
Μπορούμε να χρησιμοποιήσουμε τη σύνταξη @
για να εφαρμόσουμε τον decorator με πιο εύκολο και πιο καθαρό τρόπο.
Αποτέλεσμα:
Όταν χρησιμοποιούμε @decorator_function
πάνω από την συνάρτηση display
, ο decorator εφαρμόζεται αυτόματα στην display
και κάνει τις αλλαγές που καθορίζονται στην wrapper_function
.
Παράδειγμα 3: Decorator με Παράμετρο
Μπορούμε να δημιουργήσουμε decorators που δέχονται παραμέτρους και να τις περάσουμε στην αρχική συνάρτηση.
Αποτέλεσμα:
Στο παράδειγμα αυτό, ο decorator_with_args μπορεί να δεχτεί παραμέτρους και να τις περάσει στην αρχική συνάρτηση greet
.
Παράδειγμα 4: Chaining Decorators
Μπορούμε να χρησιμοποιήσουμε πολλούς decorators σε μία μόνο συνάρτηση. Αυτός ο τύπος διακόσμησης ονομάζεται "chaining decorators".
Αποτέλεσμα:
Στο παραπάνω παράδειγμα, χρησιμοποιούμε δύο decorators σε αλυσιδωτό στυλ. Το decorator_two
εφαρμόζεται πρώτα και στη συνέχεια το decorator_one
εφαρμόζεται στο αποτέλεσμα.
Συμπέρασμα
Οι decorators στην Python είναι ένας ισχυρός τρόπος να τροποποιήσουμε ή να προσθέσουμε συμπεριφορές σε υπάρχουσες συναρτήσεις χωρίς να χρειαστεί να τροποποιήσουμε τον αρχικό κώδικα της συνάρτησης. Χρησιμοποιούνται συχνά σε βιβλιοθήκες και πλαίσια (όπως το Flask ή το Django) για να προσθέσουν επιπλέον λειτουργικότητες, όπως η διαχείριση της εξουσιοδότησης χρηστών ή η παρακολούθηση των αιτήσεων.
Σχόλια
Δημοσίευση σχολίου