Gestionarea unei erori StopIteration
Clasa Playlist din exercițiul anterior a fost actualizată pentru a afișa un mesaj cu melodia care se redă la momentul respectiv și este prezentată mai jos. Folosind acest iterator personalizat, vei exersa gestionarea elegantă a unei excepții StopIteration. Distracție plăcută!
class Playlist:
def __init__(self, songs, shuffle=False):
self.songs = songs
self.index = 0
if shuffle:
random.shuffle(self.songs)
def __iter__(self):
return self
def __next__(self):
if self.index >= len(self.songs):
raise StopIteration
print(f"Playing {self.songs[self.index]}")
self.index += 1
Acest exercițiu face parte din cursul
Programare orientată pe obiecte intermediară în Python
Instrucțiuni pentru exercițiu
- Creează un obiect
Playlistnumitclassic_rock_playlistalcătuit din titlurile din listasongs; asigură-te căclassic_rock_playlistamestecă melodiile aleatoriu. - Folosind un bloc
try-exceptîn interiorul unei buclewhile, redă următoarea melodie dinclassic_rock_playlist. - Actualizează logica din blocul
try-exceptpentru a gestiona o eroareStopIteration, afișând un mesaj și ieșind din buclă.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Create a classic rock playlist using the songs list
songs = ["Hooked on a Feeling", "Yesterday", "Mr. Blue Sky"]
____ = ____(____, ____=True)
while True:
____:
# Play the next song in the playlist
next(____)
# If there is a StopIteration error, print a message and
# stop the playlist
____ ____:
____("Reached end of playlist!")
____