id(object)
Function: What is returned is the "ID card number" of the object, which is unique and unchanged. However, the same id value may appear in non-overlapping life cycles. The objects mentioned here should specifically refer to composite type objects (such as classes, lists, etc.). For types such as strings and integers, the id of the variable changes as the value changes.
Python version: Python2.x Python3.x
Python English official document explanation:
Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value.
CPython implementation detail: This is the address of the object in memory.
Note: The id value of an object is in CPython The interpreter represents its address in memory (the interpreter implemented in Python's c language).
Code example:
class Obj(): def __init__(self,arg): self.x=arg if __name__ == '__main__': obj=Obj(1) print id(obj) #32754432 obj.x=2 print id(obj) #32754432 s="abc" print id(s) #140190448953184 s="bcd" print id(s) #32809848 x=1 print id(x) #15760488 x=2 print id(x) #15760464
When using is to determine whether two objects are equal, the basis is the id value
The difference between is and == is that is is a comparison in memory, while == is a comparison of values