mirror of
				https://github.com/python/cpython.git
				synced 2025-10-26 11:14:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			230 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			230 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Augmented assignment test.
 | |
| 
 | |
| x = 2
 | |
| x += 1
 | |
| x *= 2
 | |
| x **= 2
 | |
| x -= 8
 | |
| x /= 2
 | |
| x %= 12
 | |
| x &= 2
 | |
| x |= 5
 | |
| x ^= 1
 | |
| 
 | |
| print x
 | |
| 
 | |
| x = [2]
 | |
| x[0] += 1
 | |
| x[0] *= 2
 | |
| x[0] **= 2
 | |
| x[0] -= 8
 | |
| x[0] /= 2
 | |
| x[0] %= 12
 | |
| x[0] &= 2
 | |
| x[0] |= 5
 | |
| x[0] ^= 1
 | |
| 
 | |
| print x
 | |
| 
 | |
| x = {0: 2}
 | |
| x[0] += 1
 | |
| x[0] *= 2
 | |
| x[0] **= 2
 | |
| x[0] -= 8
 | |
| x[0] /= 2
 | |
| x[0] %= 12
 | |
| x[0] &= 2
 | |
| x[0] |= 5
 | |
| x[0] ^= 1
 | |
| 
 | |
| print x[0]
 | |
| 
 | |
| x = [1,2]
 | |
| x += [3,4]
 | |
| x *= 2
 | |
| 
 | |
| print x
 | |
| 
 | |
| x = [1, 2, 3]
 | |
| y = x
 | |
| x[1:2] *= 2
 | |
| y[1:2] += [1]
 | |
| 
 | |
| print x
 | |
| print x is y
 | |
| 
 | |
| class aug_test:
 | |
|     def __init__(self, value):
 | |
|         self.val = value
 | |
|     def __radd__(self, val):
 | |
|         return self.val + val
 | |
|     def __add__(self, val):
 | |
|         return aug_test(self.val + val)
 | |
| 
 | |
| 
 | |
| class aug_test2(aug_test):
 | |
|     def __iadd__(self, val):
 | |
|         self.val = self.val + val
 | |
|         return self
 | |
| 
 | |
| class aug_test3(aug_test):
 | |
|     def __iadd__(self, val):
 | |
|         return aug_test3(self.val + val)
 | |
| 
 | |
| x = aug_test(1)
 | |
| y = x
 | |
| x += 10
 | |
| 
 | |
| print isinstance(x, aug_test)
 | |
| print y is not x
 | |
| print x.val
 | |
| 
 | |
| x = aug_test2(2)
 | |
| y = x
 | |
| x += 10
 | |
| 
 | |
| print y is x
 | |
| print x.val
 | |
| 
 | |
| x = aug_test3(3)
 | |
| y = x
 | |
| x += 10
 | |
| 
 | |
| print isinstance(x, aug_test3)
 | |
| print y is not x
 | |
| print x.val
 | |
| 
 | |
| class testall:
 | |
| 
 | |
|     def __add__(self, val):
 | |
|         print "__add__ called"
 | |
|     def __radd__(self, val):
 | |
|         print "__radd__ called"
 | |
|     def __iadd__(self, val):
 | |
|         print "__iadd__ called"
 | |
|         return self
 | |
| 
 | |
|     def __sub__(self, val):
 | |
|         print "__sub__ called"
 | |
|     def __rsub__(self, val):
 | |
|         print "__rsub__ called"
 | |
|     def __isub__(self, val):
 | |
|         print "__isub__ called"
 | |
|         return self
 | |
| 
 | |
|     def __mul__(self, val):
 | |
|         print "__mul__ called"
 | |
|     def __rmul__(self, val):
 | |
|         print "__rmul__ called"
 | |
|     def __imul__(self, val):
 | |
|         print "__imul__ called"
 | |
|         return self
 | |
| 
 | |
|     def __div__(self, val):
 | |
|         print "__div__ called"
 | |
|     def __rdiv__(self, val):
 | |
|         print "__rdiv__ called"
 | |
|     def __idiv__(self, val):
 | |
|         print "__idiv__ called"
 | |
|         return self
 | |
| 
 | |
|     def __mod__(self, val):
 | |
|         print "__mod__ called"
 | |
|     def __rmod__(self, val):
 | |
|         print "__rmod__ called"
 | |
|     def __imod__(self, val):
 | |
|         print "__imod__ called"
 | |
|         return self
 | |
| 
 | |
|     def __pow__(self, val):
 | |
|         print "__pow__ called"
 | |
|     def __rpow__(self, val):
 | |
|         print "__rpow__ called"
 | |
|     def __ipow__(self, val):
 | |
|         print "__ipow__ called"
 | |
|         return self
 | |
| 
 | |
|     def __or__(self, val):
 | |
|         print "__or__ called"
 | |
|     def __ror__(self, val):
 | |
|         print "__ror__ called"
 | |
|     def __ior__(self, val):
 | |
|         print "__ior__ called"
 | |
|         return self
 | |
| 
 | |
|     def __and__(self, val):
 | |
|         print "__and__ called"
 | |
|     def __rand__(self, val):
 | |
|         print "__rand__ called"
 | |
|     def __iand__(self, val):
 | |
|         print "__iand__ called"
 | |
|         return self
 | |
| 
 | |
|     def __xor__(self, val):
 | |
|         print "__xor__ called"
 | |
|     def __rxor__(self, val):
 | |
|         print "__rxor__ called"
 | |
|     def __ixor__(self, val):
 | |
|         print "__ixor__ called"
 | |
|         return self
 | |
| 
 | |
|     def __rshift__(self, val):
 | |
|         print "__rshift__ called"
 | |
|     def __rrshift__(self, val):
 | |
|         print "__rrshift__ called"
 | |
|     def __irshift__(self, val):
 | |
|         print "__irshift__ called"
 | |
|         return self
 | |
| 
 | |
|     def __lshift__(self, val):
 | |
|         print "__lshift__ called"
 | |
|     def __rlshift__(self, val):
 | |
|         print "__rlshift__ called"
 | |
|     def __ilshift__(self, val):
 | |
|         print "__ilshift__ called"
 | |
|         return self
 | |
| 
 | |
| x = testall()
 | |
| x + 1
 | |
| 1 + x
 | |
| x += 1
 | |
| 
 | |
| x - 1
 | |
| 1 - x
 | |
| x -= 1
 | |
| 
 | |
| x * 1
 | |
| 1 * x
 | |
| x *= 1
 | |
| 
 | |
| x / 1
 | |
| 1 / x
 | |
| x /= 1
 | |
| 
 | |
| x % 1
 | |
| 1 % x
 | |
| x %= 1
 | |
| 
 | |
| x ** 1
 | |
| 1 ** x
 | |
| x **= 1
 | |
| 
 | |
| x | 1
 | |
| 1 | x
 | |
| x |= 1
 | |
| 
 | |
| x & 1
 | |
| 1 & x
 | |
| x &= 1
 | |
| 
 | |
| x ^ 1
 | |
| 1 ^ x
 | |
| x ^= 1
 | |
| 
 | |
| x >> 1
 | |
| 1 >> x
 | |
| x >>= 1
 | |
| 
 | |
| x << 1
 | |
| 1 << x
 | |
| x <<= 1
 | 
