id(object)
功能:返回的是對象的“身份證號”,唯一且不變,但在不重合的生命周期里,可能會出現(xiàn)相同的id值。此處所說的對象應(yīng)該特指復(fù)合類型的對象(如類、list等),對于字符串、整數(shù)等類型,變量的id是隨值的改變而改變的。
python版本:Python2.xPython3.x
Python英文官方文檔解釋:
Returnthe“identity”ofanobject.Thisisaninteger(orlonginteger)whichisguaranteedtobeuniqueandconstantforthisobjectduringitslifetime.Twoobjectswithnon-overlappinglifetimesmayhavethesameid()value.
CPythonimplementationdetail:Thisistheaddressoftheobjectinmemory.
注:一個對象的id值在CPython解釋器里就代表它在內(nèi)存中的地址(Python的c語言實(shí)現(xiàn)的解釋器)。
代碼實(shí)例:
classObj():
def__init__(self,arg):
self.x=arg
if__name__=='__main__':
obj=Obj(1)
printid(obj)#32754432
obj.x=2
printid(obj)#32754432
s="abc"
printid(s)#140190448953184
s="bcd"
printid(s)#32809848
x=1
printid(x)#15760488
x=2
printid(x)#15760464
用is判斷兩個對象是否相等時,依據(jù)就是這個id值
is與==的區(qū)別就是,is是內(nèi)存中的比較,而==是值的比較
以上內(nèi)容為大家介紹了Python培訓(xùn)之id函數(shù)是什么意思,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。