【发布时间】:2020-03-18 22:21:50
【问题描述】:
假设我有一个可迭代的 Movies 类,而 self.movies 是 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)
【问题讨论】:
-
self.movies.remove?但请注意在迭代列表时更改列表的长度。 -
您当然可以访问底层列表:self.movies.remove(movie);返回
-
jonrsharpe,quamrana 是的,你是对的,我完全忽略了它。对不起