55"""
66
77# pylint: disable=eval-used
8+ def calculate (number_one , operator , number_two ):
9+ result = eval (number_one + operator + number_two )
10+ if int (result ) == result :
11+ result = int (result )
12+ return str (result )
13+
814class Calculator :
915 def __init__ (self , calc_display , clear_button , label_offset ):
1016 self ._calc_display = calc_display
@@ -16,13 +22,6 @@ def __init__(self, calc_display, clear_button, label_offset):
1622 self ._operand = None
1723 self ._all_clear ()
1824
19- def calculate (self , number_one , operator , number_two ):
20-
21- result = eval (number_one + operator + number_two )
22- if int (result ) == result :
23- result = int (result )
24- return str (result )
25-
2625 def _all_clear (self ):
2726 self ._accumulator = "0"
2827 self ._operator = None
@@ -76,7 +75,7 @@ def _handle_operator(self, input_key):
7675 else :
7776 # Perform current calculation before changing input_keys
7877 if self ._operand is not None :
79- self ._accumulator = self . calculate (self ._accumulator , self ._operator , self ._operand )
78+ self ._accumulator = calculate (self ._accumulator , self ._operator , self ._operand )
8079 self ._set_text (self ._accumulator )
8180 self ._operand = None
8281 self ._operator = input_key
@@ -87,7 +86,7 @@ def _handle_equal(self):
8786 if self ._operator is not None :
8887 if self ._operand is None :
8988 self ._operand = self ._get_text ()
90- self ._accumulator = self . calculate (self ._accumulator , self ._operator , self ._operand )
89+ self ._accumulator = calculate (self ._accumulator , self ._operator , self ._operand )
9190 self ._set_text (self ._accumulator )
9291 self ._equal_pressed = True
9392
@@ -109,9 +108,9 @@ def add_input(self, input_key):
109108 self ._set_button_ce (True )
110109 self ._equal_pressed = False
111110 elif input_key == "+/-" :
112- self ._set_text (self . calculate (self ._get_text (), "*" , "-1" ))
111+ self ._set_text (calculate (self ._get_text (), "*" , "-1" ))
113112 elif input_key == "%" :
114- self ._set_text (self . calculate (self ._get_text (), "/" , "100" ))
113+ self ._set_text (calculate (self ._get_text (), "/" , "100" ))
115114 elif input_key == "=" :
116115 self ._handle_equal ()
117116 except (ZeroDivisionError , RuntimeError ):
0 commit comments