Поиск по сайту:

Изучите оператор идентификации Python и разницу между операторами «==" и «IS»


Эта статья в основном создана для того, чтобы объяснить важный оператор в PythonIDENTITY OPERATOR») и чем отличается оператор идентификации (is, is not). ) из оператора сравнения (==).

ИДЕНТИЧНОСТЬ ОПЕРАТОРА

Оператор идентификации (“is ” и “is ”) используется для сравнения местоположения объекта в памяти. Когда объект создается в памяти, этому объекту выделяется уникальный адрес памяти.

  • ’==’ сравнивает, идентичны ли оба значения объекта.
  • ’is’ сравнивает, принадлежат ли оба объекта к одной и той же ячейке памяти.

Создайте три строковых объекта Name, Name1 и Name2. Строковый объект Name и Name2 будет содержать одно и то же значение, а Name1 будет содержать разные значения.

Когда мы создаем эти объекты, за сценой происходит следующее: этот объект будет создан в памяти и будет доступен в течение всего времени существования программы.

Теперь вы можете использовать оператор сравнения “== ”, чтобы проверить, совпадают ли оба значения объекта. Результатом оператора сравнения будет логическое значение (True или False).

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

Встроенная функция Id() используется для получения «идентичности» объекта. Целое число, которое будет уникальным и постоянным для объекта в течение его жизни.

Проще говоря, представьте, что это уникальный правительственный ID или Emp ID, назначенный вам, аналогично каждому объекту присваивается уникальное целочисленное значение.

Теперь вы можете сравнить две ссылки на объекты, используя оператор is .

Когда я сравниваю Name и Name1 или Name2 с помощью оператора идентификации, на серверной стороне он просто запускает “id(Name ) == id(Name2) ”. Поскольку id(Name) и id(Name2) используют одну и ту же ячейку памяти, он возвращает True.

А теперь самое интересное. Посмотрите на наш предыдущий пример, где Name и Name1 имеют одинаковые значения и возвращают одно и то же целочисленное значение при запуске функции id(). Как вы думаете, почему объекты «Name_new» и «Name_le» не идентичны, хотя они имеют одинаковые значения, как показано на снимке экрана ниже?

Это связано с реализацией дизайна Python. Когда вы создаете целочисленный объект в диапазоне (-5,256) и строковые объекты, содержащие больше или равные 20 символов, вместо создания разных объектов в памяти для одного и того же значения эти объекты действовать как указатель на уже созданные объекты.

Приведенное ниже графическое изображение даст вам четкое представление о том, что мы видели в этой статье.

Краткое содержание

В этой статье мы увидели, что такое оператор идентификации. Как используются оператор сравнения и оператор идентификации, проектная реализация того, как объект создается в памяти.