如何从可迭代对象中删除项目?

How to remove item from iterable object?

所以假设我有一个可迭代的 class 电影,self.movies 是一个电影对象列表。如何创建 remove_movie 方法?我提供的方法不起作用,因为 iterable 不是列表?

class Movies:
    def __init__(self):
        self.movies = []

    def __iter__(self):
        return iter(self.movies)

    def add_movie(self, movie):
        pass

    def remove_movie(self, id):
        for movie in self:
            if movie.id == id:
               self.remove(movie)

您遇到了 AttributeError。

self.movies.remove(movie)