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!