Зачем нужен __contains__ в итераторе Python
Python
Middle
Aston
Зачем нужен __contains__ в итераторе Python
Ответы
Метод `__contains__` позволяет проверить наличие элемента в итераторе или коллекции с помощью оператора `in`. Если он не реализован, Python будет перебирать элементы вручную, что может быть неэффективно.
Пример с реализацией `__contains__` для проверки диапазона:
```
class Range:
def __init__(self, start, end):
self.start = start
self.end = end
def __contains__(self, item):
return self.start <= item <= self.end
r = Range(1, 10)
print(5 in r) # True
print(15 in r) # False
```
Без `__contains__` проверка `in` потребовала бы полного перебора.