Sobes.tech
Junior — Middle

Ποιο θα είναι το αποτέλεσμα όταν ολοκληρωθεί η εκτέλεση μιας γεννήτριας συνάρτησης στην Python;

sobes.tech AI

Απάντηση από AI

Όταν ολοκληρώνεται η εκτέλεση μιας γεννήτριας συνάρτησης στην Python, προκαλείται μια εξαίρεση StopIteration. Αυτό σηματοδοτεί ότι ο γεννήτριας έχει εξαντλήσει όλες τις τιμές του και δεν μπορεί να παράγει νέες.

Αν επαναλαμβάνετε πάνω στον γεννήτρια σε μια βρόχο for, αυτή η εξαίρεση διαχειρίζεται αυτόματα και ο βρόχος τερματίζεται.

Παράδειγμα:

def gen():
    yield 1
    yield 2

g = gen()
print(next(g))  # Εκτυπώνει 1
print(next(g))  # Εκτυπώνει 2
print(next(g))  # Ρίχνει `StopIteration`

Έτσι, το StopIteration είναι ο τυπικός τρόπος να δηλώσετε το τέλος ενός γεννήτρια.