Απόδοση Python

Python Yield



Η απόδοση είναι μια ενσωματωμένη λέξη-κλειδί Python που επιστρέφει τις τιμές από μια συνάρτηση. Η εκτέλεση της συνάρτησης δεν τερματίζεται. Αντίθετα, επιστρέφει την τιμή στον καλούντα και διατηρεί την κατάσταση εκτέλεσης της συνάρτησης. Η εκτέλεση της συνάρτησης συνεχίζεται από την τελευταία δήλωση απόδοσης. Η απόδοση μας επιτρέπει να παράγουμε μια ακολουθία τιμών και όχι μία τιμή. Χρησιμοποιείται μέσα σε ένα σώμα λειτουργίας. Η συνάρτηση που περιέχει μια δήλωση απόδοσης είναι γνωστή ως συνάρτηση γεννήτριας.







Υπάρχουν πολλά πλεονεκτήματα για την απόδοση λέξεων -κλειδιών. Για παράδειγμα, ελέγχει την κατανομή μνήμης και αποθηκεύει την κατάσταση της τοπικής μεταβλητής. Ωστόσο, αυξάνει την πολυπλοκότητα του κώδικα.



Αυτό το άρθρο εξηγεί τη χρήση της λέξης -κλειδιού απόδοσης με παραδείγματα.



Σύνταξη Απόδοσης

Η σύνταξη απόδοσης είναι απλή και απλή. Η απόδοση ξεκινά με τη λέξη -κλειδί απόδοσης και τη σύνταξη ως εξής:





απόδοση παραγωγήςαξία

Παραδείγματα

Τώρα, ας δούμε παραδείγματα για να κατανοήσουμε τη χρήση και τα έργα των δηλώσεων απόδοσης. Παραδοσιακά, η λέξη -κλειδί επιστροφής τερματίζει την εκτέλεση του προγράμματος και επιστρέφει μια τιμή στο τέλος, ενώ η απόδοση επιστρέφει την ακολουθία των τιμών. Δεν αποθηκεύει την τιμή στη μνήμη και επιστρέφει την τιμή στον καλούντα την ώρα εκτέλεσης. Στο παρακάτω παράδειγμα, ορίζεται μια συνάρτηση γεννήτριας για τον προσδιορισμό του δίσεκτου έτους. Ένα άλμα είναι εκείνο το έτος όταν διαιρείται με τέσσερα επιστρέφει μηδέν ως υπόλοιπο. Η λέξη -κλειδί απόδοσης επιστρέφει την τιμή του δίσεκτου έτους στον καλούντα. Καθώς θα λάβει την τιμή του δίσεκτου έτους, θα διακόψει την εκτέλεση του προγράμματος, θα επιστρέψει την τιμή και στη συνέχεια θα συνεχίσει την εκτέλεση από εκεί που σταμάτησε.

#δήλωση γεννήτριας για τον προσδιορισμό του δίσεκτου έτους
defάλμα(η λίστα μου):
ΓιαΕγώσεη λίστα μου:
αν(Εγώ%4==0):
#χρήση απόδοσης
απόδοση παραγωγήςΕγώ
#δηλώνοντας τη λίστα των ετών
λίστα_χρόνων=[2010,2011,2012,2016,2020,2024]
Τυπώνω(«Εκτύπωση των τιμών του δίσεκτου έτους»)
ΓιαΧσεάλμα(λίστα_χρόνων):
Τυπώνω(Χ)

Παραγωγή



Η έξοδος δείχνει τη σειρά των δίσεκτων ετών.

Ας δούμε ένα άλλο παράδειγμα όπου η συνάρτηση γεννήτριας αποδίδει διάφορους αριθμούς και συμβολοσειρές.

#δήλωση συνάρτησης γεννήτριας
defmyfunc():
απόδοση παραγωγής 'Σημάδι'
απόδοση παραγωγής 'Γιάννης'
απόδοση παραγωγής 'Taylor'
απόδοση παραγωγής 'Ιβάν'
απόδοση παραγωγής 10
απόδοση παραγωγής είκοσι
απόδοση παραγωγής 30
απόδοση παραγωγής 40
απόδοση παραγωγής πενήντα
#κλήση και επανάληψη μέσω της λειτουργίας γεννήτριας
ΓιαΕγώσεmyfunc():
#εκτυπώσεις τιμών
Τυπώνω(Εγώ)

Παραγωγή

Ας εφαρμόσουμε μια συνάρτηση γεννήτριας για τον υπολογισμό και την εκτύπωση της τιμής κύβου της ακολουθίας αριθμών. Δημιουργούμε τις τιμές του κύβου από 1 έως 30.

#δήλωση συνάρτησης γεννήτριας για τον υπολογισμό της τιμής του κύβου
defcalcube():
ωρες=1
#ο άπειρος βρόχος
ενώ Αληθής:
#υπολογισμός κύβου
απόδοση παραγωγήςβαλ * βαλ * βαλ
#τιμή αύξησης κατά 1
ωρες=val +1
Τυπώνω('Οι τιμές του κύβου είναι:')
#κλήση της λειτουργίας γεννήτριας
ΓιαΕγώσεcalcube():
ανΕγώ>>30:
Διακοπή
Τυπώνω(Εγώ)

Παραγωγή

Η έξοδος δείχνει την τιμή του κύβου μικρότερη από 30.

συμπέρασμα

Η απόδοση είναι μια ενσωματωμένη λέξη-κλειδί Python που δεν τερματίζει την εκτέλεση του προγράμματος και δεν δημιουργεί μια σειρά τιμών. Σε σύγκριση με τη λέξη -κλειδί επιστροφής, η λέξη -κλειδί απόδοσης παράγει πολλαπλές τιμές και επιστρέφει στον καλούντα. Αυτό το άρθρο εξηγεί την απόδοση της Python με παραδείγματα.