mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			935 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			935 B
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| # A simple vector class
 | |
| 
 | |
| 
 | |
| def vec(*v):
 | |
| 	return apply(Vec, v)
 | |
| 
 | |
| 
 | |
| class Vec:
 | |
| 
 | |
| 	def __init__(self, *v):
 | |
| 		self.v = []
 | |
| 		for x in v:
 | |
| 			self.v.append(x)
 | |
| 
 | |
| 
 | |
| 	def fromlist(self, v):
 | |
| 		self.v = []
 | |
| 		if type(v) <> type([]):
 | |
| 			raise TypeError
 | |
| 		self.v = v[:]
 | |
| 		return self
 | |
| 
 | |
| 
 | |
| 	def __repr__(self):
 | |
| 		return 'vec(' + `self.v`[1:-1] + ')'
 | |
| 
 | |
| 	def __len__(self):
 | |
| 		return len(self.v)
 | |
| 
 | |
| 	def __getitem__(self, i):
 | |
| 		return self.v[i]
 | |
| 
 | |
| 	def __add__(a, b):
 | |
| 		# Element-wise addition
 | |
| 		v = []
 | |
| 		for i in range(len(a)):
 | |
| 			v.append(a[i] + b[i])
 | |
| 		return Vec().fromlist(v)
 | |
| 
 | |
| 	def __sub__(a, b):
 | |
| 		# Element-wise subtraction
 | |
| 		v = []
 | |
| 		for i in range(len(a)):
 | |
| 			v.append(a[i] - b[i])
 | |
| 		return Vec().fromlist(v)
 | |
| 
 | |
| 	def __mul__(self, scalar):
 | |
| 		# Multiply by scalar
 | |
| 		v = []
 | |
| 		for i in range(len(self.v)):
 | |
| 			v.append(self.v[i]*scalar)
 | |
| 		return Vec().fromlist(v)
 | |
| 
 | |
| 
 | |
| 
 | |
| def test():
 | |
| 	a = vec(1, 2, 3)
 | |
| 	b = vec(3, 2, 1)
 | |
| 	print a
 | |
| 	print b
 | |
| 	print a+b
 | |
| 	print a*3.0
 | |
| 
 | |
| test()
 | 
