Home > Backend Development > Python Tutorial > Detailed explanation of is and == methods for comparing two objects in Python

Detailed explanation of is and == methods for comparing two objects in Python

巴扎黑
Release: 2017-09-07 09:47:08
Original
1334 people have browsed it

This article mainly introduces the relevant information about the two methods of comparing two objects, is and == in Python. I hope this article can help everyone. Friends in need can refer to it

Is and == in Python are two ways to compare two objects

There are two ways to compare whether two objects are equal in Python, namely is and ==, between the two are different

  • ==== compares values ​​(like the equals method in java)

  • is compares references (can be seen as Compare memory addresses, similar to == in java)

For:


>>> n = 1
>>> n is 1
True
>>> b = '1'
>>> b is 1
False
>>> n == b
False
Copy after login

Since 1 and '1' do not matter It is different on the value or on the reference, so the result is false

For:


>>> n = 1
>>> n is 1
True
Copy after login

There is a knowledge point here. Simply put, for plastic For this primitive type, reference comparison is value comparison. However, Python adopts this method in implementing integer types. For numbers between -5 and 256, an array is reserved in the memory to store these numbers. The next time you use them, you can directly Quote. For numbers outside this range, a new int object will be created

Take a simple example, as shown in the following code:


#a和b的值超出256
>>> a = 257
>>> b = 257
>>> a is b
False

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> a is b
True
Copy after login

As shown in the above example, as long as it is an integer between -5~256, python will not initialize new memory space for the variable, but once it exceeds 256, new space will be allocated.

You can also directly see the difference in the memory addresses of the two objects by printing the IDs of the two objects, as shown below:


#a和b的值超出256
>>> a = 257
>>> b = 257
>>>
>>>
>>> id(a)
140638347685960
>>> id(b)
140638347686008

#a和b的值在-5和256之间
>>> a = 256
>>> b = 256
>>> id(a)
140638347656864
>>> id(b)
140638347656864
Copy after login

The above is the detailed content of Detailed explanation of is and == methods for comparing two objects in Python. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template