Προχωρημένο Μάθημα Ανάπτυξης Python
Κεφάλαιο 1
>
Επίπεδο 1
Βιβλίο Κώδικα
Level 1: Δημιουργία Γεννήτριας | Οι γεννήτριες είναι μια ειδική κατηγορία συναρτήσεων στην Python που επιτρέπουν την επανάληψη μεγάλων συνόλων δεδομένων με πιο αποδοτικό τρόπο. Αντί να επιστρέφουν μια λίστα αποτελεσμάτων, οι γεννήτριες επιστρέφουν τιμές μία προς μία, χρησιμοποιώντας τη δήλωση `yield`. ## Πώς να δημιουργήσετε μια γεννήτρια Για να δημιουργήσετε μια γεννήτρια, απλά ορίστε μια συνάρτηση όπως θα κάνατε κανονικά αλλά χρησιμοποιήστε `yield` αντί για `return`. ```python # Παράδειγμα γεννήτριας που υπολογίζει τετράγωνα αριθμών def square_numbers(nums): for i in nums: yield i * i ``` ## Χρήση γεννήτριας Μπορείτε να περάσετε την γεννήτρια σε έναν for-loops για να επαναλάβετε στις τιμές: ```python nums = square_numbers([1, 2, 3, 4, 5]) for num in nums: print(num) ``` Αυτό θα εκτυπώσει το τετράγωνο κάθε αριθμού από τη λίστα. ## Πλεονεκτήματα γεννητριών - **Μνήμη**: Οι γεννήτριες δεν αποθηκεύουν όλες τις τιμές στη μνήμη, πράγμα που σημαίνει ότι μπορούν να χειριστούν πολύ μεγάλα σύνολα δεδομένων. - **Αποδοτικότητα**: Με τις γεννήτριες, οι τιμές υπολογίζονται μόνο όταν χρειάζονται, γεγονός που μπορεί να αυξήσει την αποδοτικότητα του προγράμματος.