Wyszukiwanie w witrynie

Poznaj operator tożsamości w języku Python i różnicę między operatorem „=” a operatorem „IS”.


Celem tego artykułu jest głównie wyjaśnienie ważnego operatora w Pythonie („OPERATOR TOŻSAMOŚCI”) oraz różnic między operatorami tożsamości (jest, nie ) z operatora porównania (==).

OPERATOR TOŻSAMOŚCI

Operator tożsamości („jest” i „nie jest”) służy do porównywania lokalizacji w pamięci obiektu. Kiedy obiekt jest tworzony w pamięci, do tego obiektu przydzielany jest unikalny adres pamięci.

  • „==” porównuje, czy obie wartości obiektu są identyczne, czy nie.
  • „is” porównuje, czy oba obiekty należą do tej samej lokalizacji w pamięci.

Utwórz trzy obiekty tekstowe Nazwa, Nazwa1 i Nazwa2. Obiekt string Name i Name2 będzie miał tę samą wartość, a Name1 będzie miał różne wartości.

Kiedy tworzymy te obiekty, za kulisami dzieje się to, że obiekt ten zostanie utworzony w pamięci i będzie dostępny przez cały okres istnienia programu.

Teraz możesz użyć operatora porównania „== ”, aby sprawdzić, czy obie wartości obiektów są takie same. Wynikiem operatora porównania będzie wartość logiczna (True lub False).

Teraz, gdy porównałeś dwie wartości w celu ustalenia równości, przyjrzyjmy się, jak działa operator tożsamości.

Wbudowana funkcja Id() służy do uzyskania „tożsamości” obiektu. Liczba całkowita, która będzie unikalna i stała dla obiektu przez cały okres jego istnienia.

Dla uproszczenia potraktuj to jako unikalny rządowy ID lub Emp ID przypisany do Ciebie, podobnie jak do każdego obiektu przypisana jest unikalna wartość całkowita.

Teraz możesz porównać 2 odniesienia do obiektów za pomocą operatora „is ”.

Kiedy porównuję Nazwę i Nazwę1 lub Nazwę2 za pomocą operatora tożsamości, to, co robi na zapleczu, to po prostu uruchamia „id(Nazwa ) == id(Nazwa2) ”. Ponieważ id(Name) i id(Name2) korzystają z tego samego miejsca w pamięci, zwraca wartość True.

Teraz nadchodzi interesująca część. Spójrz na nasz poprzedni przykład, w którym zarówno Name, jak i Name1 mają identyczne wartości i zwracają tę samą wartość całkowitą, gdy uruchomimy funkcję id(). Dlaczego uważasz, że obiekty „Name_new” i „Name_le” nie są identyczne, mimo że mają te same wartości z poniższego zrzutu ekranu?

Dzieje się tak z powodu implementacji projektu Pythona. Kiedy tworzysz obiekt całkowity w zakresie (-5256) i obiekty łańcuchowe większe lub równe 20 znaków, zamiast tworzyć w pamięci różne obiekty o tej samej wartości, obiekty te działać jako wskaźnik do już utworzonych obiektów.

Poniższe przedstawienie obrazowe da jasny obraz tego, co widzieliśmy do tej pory w tym artykule.

Streszczenie

W tym artykule zobaczyliśmy, czym jest operator tożsamości. Sposób użycia operatora porównania i operatora tożsamości, zaprojektuj implementację sposobu tworzenia obiektu w pamięci.