""" Operator module contains the Operator class and a list of standard operators. """ class Operator: """ Operator class is a binary operator with a symbol, a precedence and an evaluation function. """ def __init__(self, symbol, precedence, evaluate_function): self.symbol = symbol self.precedence = precedence self.evaluate_function = evaluate_function def __repr__(self): return self.symbol def __call__(self, left, right): return self.evaluate_function(left, right) STANDARD_OPERATORS = { '+': Operator('+', 1, lambda a, b: a + b), '-': Operator('-', 1, lambda a, b: a - b), '*': Operator('×', 2, lambda a, b: a * b), '/': Operator('/', 2, lambda a, b: a / b), } def test_operator(): """ Test the Operator class. """ operator = Operator('%', 1, lambda a, b: a % b) assert repr(operator) == '%' assert operator(15, 4) == 3