示例#1
0
	def sub(self, a, b):
		if isinstance(a, float):
			if isinstance(b, float):
				return a - b
			elif isinstance(b, Complex):
				return Complex.sub(Complex(a), b)
			elif isinstance(b, Matrix):
				raise ComputorException('Illegal operation: Rational - Matrix')
		elif isinstance(a, Complex):
			if isinstance(b, float):
				return Complex.sub(a, Complex(b))
			elif isinstance(b, Complex):
				return Complex.sub(a, b)
			elif isinstance(b, Matrix):
				raise ComputorException('Illegal operation: Complex - Matrix')
		elif isinstance(a, Matrix):
			if isinstance(b, float):
				raise ComputorException('Illegal operation: Matrix - Rational')
			elif isinstance(b, Complex):
				raise ComputorException('Illegal operation: Matrix - Complex')
			elif isinstance(b, Matrix):
				return Matrix.sub(a, b)
		raise ComputorException('Computor.sub(): something bad happened 🤷')