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

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

巴扎黑
巴扎黑Original
2017-09-07 09:47:081253browse

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

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

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

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

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!

Statement:
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