Рубрики
Без рубрики

Сравнение объектов: «является« VS »==»

Сравнивается путем проверки равенства: если эти объекты Python мы их сравнивали с … с меткой Python, программирование, производительностью.

== Оператор сравнивает по проверке равенства: если эти объекты Python мы сравнили их с тем, мы получили Оба объекта равны как ответ.

это Оператор, однако, сравнивает удостоверение личности: если мы сравним наш Объекты с оператором IS, мы получили Это два разных объекта как ответ.

Давайте посмотрим на какой-то настоящий код Python.

>>> a = [1, 2, 3]
>>> b = a

Давайте проверим эти две переменные. Мы можем видеть, что они указывают на идентичные списки:

>>> a
[1, 2, 3]
>>> b
[1, 2, 3]

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

>>> a == b
True

Однако это не говорит нам, на самом деле указывает A и B на один и тот же объект. Конечно, мы знаем, что они потому, что мы назначили их ранее, но предположим, что мы не знали – как мы можем узнать?

Ответ состоит в том, чтобы сравнить оба переменных с помощью оператора. Это подтверждает, что обе переменные на самом деле указывают на один объект списка:

>>> a is b
True

Посмотрим, что произойдет, когда мы создаем идентичную копию нашего объекта списка. Мы можем сделать это путем вызова списка () в существующем списке, чтобы создать копию, которую мы называем C:

>>> c = list(a)

Опять же, вы увидите, что новый список, который мы только что создали, выглядит идентичным объекту списка, указанного на A и B:

>>> c
[1, 2, 3]

Сейчас это где это становится интересным. Давайте сравним наш список Copy C с исходным списком A Использование. Какой ответ вы ожидаете увидеть?

>>> a == c
True

Хорошо, я надеюсь, что это было то, что вы ожидали. Этот результат говорит нам, что C и A имеют одинаковое содержимое. Они считаются равными Python. Но на самом деле ли они указывают на тот же объект? Давайте узнаем с оператором:

>>> a is c
False

Это где мы получаем другой результат. Python говорит нам, что C и A указывают на два разных объекта, хотя их содержимое может быть одинаковым.

Заключение:

  • Экспрессия «is» оценивает true, если две переменные указывают на тот же (идентичный) объект.
  • Выражение «==» оценивает true, если объекты, упомянутые переменными, равны (имеют одинаковое содержимое).

Оригинал: “https://dev.to/yusufadel/object-comparisons-is-vs-4oba”