Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpClCn 105 of 174 menu
◀ ▶

Проверка вхождения в коллекцию в ООП в Python

Оператор in для объекта вызывает метод __contains__. Метод получает искомое значение и возвращает True или False.

Давайте добавим __contains__ к классу с числами:

class Numbers: def __init__(self): self.__data = [1, 2, 3] def __contains__(self, num): return num in self.__data

Создадим объект и проверим вхождение:

nums = Numbers() print(2 in nums) # выведет True print(5 in nums) # выведет False

Для отрицания используют not in:

print(5 not in nums) # выведет True

Сделаем проверку для коллекции сотрудников по имени:

class Employee: def __init__(self, name): self.name = name class Workers: def __init__(self): self.__data = [ Employee('john'), Employee('smit'), ] def __contains__(self, name): for worker in self.__data: if worker.name == name: return True return False

Проверим, есть ли сотрудник с заданным именем:

workers = Workers() print('john' in workers) # выведет True print('eric' in workers) # выведет False

Добавьте __contains__ в класс Numbers.

Сделайте __contains__ в классе Workers. Поиск идет по имени сотрудника.

Проверьте через in, есть ли в коллекции сотрудник с именем smit.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить