首页 > 解决方案 > 如何从可迭代对象中删除项目?

问题描述

因此,假设我有一个可迭代的类 Movies,而 self.movi​​es 是 Movie 对象的列表。如何创建 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)

标签: pythoniterable

解决方案


你得到一个 AttributeError。

self.movies.remove(movie)

推荐阅读