27 lines
		
	
	
		
			665 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			665 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: Difference between Python 'is' and '==' operators
 | |
| ---
 | |
| `is` is a check for object identity - ie, checking if two or more variables are referring to the same object. You can't overload `is`.
 | |
| 
 | |
| `==` evaluates to true if object referred to by the variables are equal. You can overload `==` via the `__eq__` operator.
 | |
| 
 | |
| 
 | |
| ## Return Value
 | |
| 
 | |
| The return value for both would be either `True` or `False`.
 | |
| 
 | |
| ## Code Sample
 | |
| 
 | |
|     a = 2.3
 | |
|     a is 2.3  # => False
 | |
|     a == 2.3  # => True
 | |
| 
 | |
|     a = [234,123,321]
 | |
|     b = [234,123,321]
 | |
|     a == b  # => True
 | |
|     a is b  # => False
 | |
|     a = b
 | |
|     a == b  # => True
 | |
|     a is b  # => True, because if we change a, b changes too
 | |
| 
 |