用面向对象方法写四则运算
时间: 2023-05-22 17:01:04 浏览: 162
可以使用面向对象的方法来实现四则运算,首先定义一个运算类,包含加、减、乘、除四种运算方法,然后定义一个操作数类,包含数字和符号两种属性,最后定义一个表达式类,包含多个操作数和运算符,可以通过表达式类来进行四则运算。以下是示例代码:
class Operation:
def add(self, num1, num2):
return num1 + num2
def sub(self, num1, num2):
return num1 - num2
def mul(self, num1, num2):
return num1 * num2
def div(self, num1, num2):
if num2 == 0:
raise ValueError("除数不能为0")
return num1 / num2
class Operand:
def __init__(self, value, symbol):
self.value = value
self.symbol = symbol
class Expression:
def __init__(self, operands, operators):
self.operands = operands
self.operators = operators
def evaluate(self):
op = Operation()
result = self.operands[0].value
for i in range(len(self.operators)):
if self.operators[i] == '+':
result = op.add(result, self.operands[i+1].value)
elif self.operators[i] == '-':
result = op.sub(result, self.operands[i+1].value)
elif self.operators[i] == '*':
result = op.mul(result, self.operands[i+1].value)
elif self.operators[i] == '/':
result = op.div(result, self.operands[i+1].value)
return result
# 示例用法
op1 = Operand(2, 'num')
op2 = Operand(3, 'num')
op3 = Operand(4, 'num')
op4 = Operand(5, 'num')
exp = Expression([op1, op2, op3, op4], ['+', '-', '*', '/'])
print(exp.evaluate()) # 输出:-1.6