Назад к вопросам
Aston
Junior — Middle
64
Какова роль метода __contains__ в реализации итератора в Python?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Метод __contains__ в Python отвечает за проверку принадлежности элемента коллекции и используется оператором in. В контексте итератора или коллекции, если реализовать __contains__, можно определить, как именно проверяется, содержится ли элемент в объекте.
Например, если у вас есть класс, реализующий итератор, и вы хотите поддерживать проверку if item in obj:, нужно реализовать метод __contains__.
Пример:
class MyCollection:
def __init__(self, items):
self.items = items
def __iter__(self):
return iter(self.items)
def __contains__(self, item):
for elem in self.items:
if elem == item:
return True
return False
col = MyCollection([1, 2, 3])
print(2 in col) # True
print(5 in col) # False
Таким образом, __contains__ позволяет эффективно реализовать проверку принадлежности, что важно для удобства использования пользовательских коллекций и итераторов.