1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Lập trình Hướng đối tượng Nâng cao với Python

Connected

Bài tập

Xử lý lỗi StopIteration

Lớp Playlist từ bài trước đã được cập nhật để in ra thông báo bao gồm bài hát hiện đang phát, như bên dưới. Với iterator tùy chỉnh này, bạn sẽ luyện cách xử lý ngoại lệ StopIteration một cách gọn gàng. Chúc bạn học tốt!

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

Hướng dẫn

100 XP
  • Tạo một Playlist tên là classic_rock_playlist từ các tiêu đề trong danh sách songs; đảm bảo classic_rock_playlist phát xáo trộn các bài hát.
  • Dùng khối try-except bên trong vòng lặp while để phát bài tiếp theo trong classic_rock_playlist.
  • Cập nhật logic try-except để xử lý lỗi StopIteration, in ra một thông báo và thoát khỏi vòng lặp.