TGViewer
Кодим вместе: Путь к IT-Успеху Кодим вместе: Путь к IT-Успеху @it_success_path · 541 subscribers
Post #203 385
Сравнения в Python: как научить классы понимать ==, !=, >, <, >=, <= 🔍

Продолжаем разбирать магические методы! После арифметики из прошлого поста переходим к сравнениям:

eq
()
– для равенства ==
ne() – для неравенства !=
lt() – для оператора меньше <
le() – для оператора меньше или равно <=
gt() – для оператора больше >
ge() – для оператора больше или равно >=

По умолчанию первый и второй метод сравнивают 🆔 объектов. Поэтому технически норм, при вызове ошибок не будет. Но реализация конечно будет не такой как вы ожидали увидеть). А если для того же класса Clock из прошлого поста сравнивать другими операциями, то вообще вылезут ошибки.

Но их можно легко исправить.
    def __eq__(self, other):
if not isinstance(other, (int, Clock)):
raise TypeError('Оперант справа должен иметь тип int или Clock')

other_seconds = other if isinstance(other, int) else other.seconds
return self.seconds == other_seconds

Пример:
c1 = Clock(1000)
c2 = Clock(1000)
print(c1 == c2) # True


Другие методы можете сами догадаться как прописывать, аналогично этому __eq__

Занимательный факт: можно дополнительно не реализовывать метод для сравнения на неравенство - (ne) , если уже реализован (eq). Как думаете почему? А если реализовали метод "<", сработает ли ">"?🧐🧐🧐

Подсказка: Python пытается быть умным и использовать имеющиеся методы для обратных операций! 🔄
  • 🔥 3
More from @it_success_path
  1. Oct 1, 2026Накрутка опыта всё? 🤔 Увидел новость: хедхантер хочет проверять опыт соискателей через эл…
  2. Sep 28, 2026Есть пробитие 80-ти! История подробно: • Все или ничего • Канал жив • Возвращение И всё эт…
  3. Sep 24, 2026В продолжение к предыдущему Помню, что в середине прошлой осени у меня было ровно 50 курсо…
  4. Sep 17, 2026Осознанный Python — База - done ✅ Коротко по курсу: • Теория - окей, как и в других курсах…
  5. Sep 12, 2026Почему решение приходит, когда ты уже не думаешь? 🧠 Знакомая ситуация: сидишь над задачей…
  6. Sep 5, 2026Эффект «плато» в обучении или почему прогресс останавливается Заметил за собой странную шт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →