如何从可迭代对象中删除项目?
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)
所以假设我有一个可迭代的 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)