Русский
Открыть в Telegram

ПостЧем == отличается от is?

2 мая 2023
P
PYTHON IN DEPTH🐍
Чем == отличается от is? == проверяет, одинаковые ли значения у переменных. is проверяет, указывают ли переменные на один и тот же объект. Рассмотрим на примере. Создадим словарь и скопируем ссылку на него: a = [1, 2, 3] b = a b is a # True b == a # True Теперь создадим новый словарь с помощью копирования: b = a[:] b is a # False Но из-за того, что мы скопировали в новый объект все значения старого, то содержимое двух словарей все равно совпадает: >>> b == a # True То есть, a is b по сути то же, что id(a) == id(b). Поэтому если a is b вернет True, это будет значить, что и содержимое у них одинаковое. Просто потому что это один и тот же объект. Кстати, чтобы проверить, есть ли вообще у переменной значение, обычно пользуются оператором is, а не ==: a = 42 a is None # False Дело в том, что класс None реализован как синглтон. Это значит, что экземпляр этого класса существует в интерпретаторе в единственном числе и все неопределенные значения указывают на него. a = None b = None a is b # True Для некоторых классов оператор == тоже сработает, но так лучше не делать, потому что в пользовательских классах этот оператор можно переопределить и выстрелить себе в ногу получить интересные результаты. Поэтому в PEP8 и рекомендуют проверять на значение None именно с помощью is. 🐍
210 ·

Рядом в ленте

PPYTHON IN DEPTH🐍Что такое временная сложность алгоритма? Часть 1. Когда в детстве меня учили умножать числа, мне говорили, что смысл умножения в том, чтобы короче записать суммPPYTHON IN DEPTH🐍Что такое временная сложность алгоритма? Часть 2. Рассмотрим несколько примеров. O(1) Время, которое не зависит от объема входных данных, или постоянное время.
это сообщение
PPYTHON IN DEPTH🐍Пять способов создать словарь Словарь -- структура, которая позволяет хранить данные в формате ключ-значение. Словари удобны для того, чтобы передавать информацPPYTHON IN DEPTH🐍Грамотно ставим запятые Допустим, у нас в коде есть список: >>> capitals = ['Beijing', 'New Delhi'] Добавим в него ещё город и сделаем diff двух файлов перед ко
PPYTHON IN DEPTH🐍PYTHON IN DEPTH🐍@python_in_depth · канал · Технологии
385подписчиков50средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем