43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Python Idobject
							 | 
						|||
| 
								 | 
							
								localeTitle: Python Idobject
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								`id()`是Python 3中的内置函数,它返回对象的_标识_ 。 _标识_是该对象在其生命周期内的唯一整数。这也是内存中对象的地址。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 论据
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#### 目的
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								`object`参数通常可以是`int` , `float` , `str` , `list` , `dict` , `tuple`等。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								## 代码示例
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								a = 2 
							 | 
						|||
| 
								 | 
							
								 print(id(a)) #=> 140454723286976 (Values returned by id() might be different for different users) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 b = 3 
							 | 
						|||
| 
								 | 
							
								 print(id(b)) #=> 140454723287008 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 c = 2 
							 | 
						|||
| 
								 | 
							
								 print(id(c)) #=> 140454723286976 (This is same as id(a) since they both contain the same value and hence have same memory address) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 print(id(a) == id(b)) #=> False (since a and b have different values stored in them) 
							 | 
						|||
| 
								 | 
							
								 print(id(a) == id(c)) #=> True (since a and c have same values stored in them) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 d = 1.1 
							 | 
						|||
| 
								 | 
							
								 e = 1.1 
							 | 
						|||
| 
								 | 
							
								 print(id(d) == id(e)) #=> True (since d and e have same values stored in them) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 str1 = 'hello' 
							 | 
						|||
| 
								 | 
							
								 str2 = 'hello' 
							 | 
						|||
| 
								 | 
							
								 print(id(str1) == id(str2)) #=> True (since str1 and str2 have same values stored in them) 
							 | 
						|||
| 
								 | 
							
								 
							 | 
						|||
| 
								 | 
							
								 # For complex objects like lists, tuples, dictionaries etc. id() would give a unique integer even if the content of those containers is same. 
							 | 
						|||
| 
								 | 
							
								 tup1 = (1,1) 
							 | 
						|||
| 
								 | 
							
								 tup2 = (1,1) 
							 | 
						|||
| 
								 | 
							
								 print(id(tup1) == id(tup2)) #=> False 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								 [运行代码](https://repl.it/CQw7/1)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[官方文件](https://docs.python.org/3/library/functions.html#id)
							 |