TGViewer
Python Portal Python Portal @pythonportal · 50.2K subscribers
Post #5540 6.83K
Перестаньте использовать if obj == None, используйте if obj is None

В Python, когда вы пишете:

obj == None


вы не проверяете напрямую, является ли obj значением None. Вместо этого вы спрашиваете, равен ли объект None.

Да, во многих случаях результат будет таким же, как у кода:

obj is None


Но поведение у этих двух вариантов разное, и эта разница важна.

Когда вы используете:

obj == None


Python вызывает метод __eq__ у объекта. То есть сам объект решает, что значит "равен None". А этот метод можно переопределить.

Если obj это экземпляр класса, в котором __eq__ реализован так, что при сравнении с None возвращается True (даже если объект на самом деле не None), тогда obj == None может ошибочно дать True.

Пример:

class Weird:
def __eq__(self, other):
return True # Всегда утверждает, что равен

obj = Weird()

print(obj == None) # True
print(obj is None) # False


Здесь видно, что obj == None возвращает True из-за кастомного поведения оператора __eq__ в классе.

Из этого следует, что при использовании obj == None результат не всегда предсказуем.

С другой стороны, когда вы пишете:

obj is None


вы используете оператор is, который нельзя переопределить. Это значит, что результат всегда будет одинаковым и предсказуемым.

Оператор is проверяет идентичность объектов, то есть указывают ли две ссылки на один и тот же объект. Поскольку None это singleton (единственный экземпляр), obj is None это правильный и самый эффективный способ такой проверки.

❤️ Поэтому всегда рекомендуется, и это best practice, использовать obj is None вместо obj == None ради предсказуемости и эффективности.

👉 @PythonPortal
  • 👍 41
  • ❤ 10
  • 🔥 3
More from @pythonportal
  1. Oct 7, 2026Робототехника — это, по сути, постоянное согласование систем координат. Лидар видит мир в…
  2. Oct 7, 2026Понимание алгоритмов меняет то, как вы пишете код. Этот плейлист учит именно пониманию. Па…
  3. Oct 6, 2026«Разбираемся в трансформерах и механизмах внимания» — краткое математическое введение в ме…
  4. Oct 6, 2026Начни изучать программирование GPU с одной полностью анимированной лекции на YouTube. Это…
  5. Oct 5, 2026«Основы компьютерного зрения» — бесплатная онлайн-книга издательства MIT Press, которая да…
  6. Oct 5, 2026DeepSeek выложила в открытый доступ библиотеку, которая ускоряет вычисления на GPU, лежащи…
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 →