Я начинающий python, и я практикую простой класс вычислений.Почему эти функции выполняются в словаре
Этот фрагмент кода предполагается, что при вводе пользователем 2 номера и 1 оператора в командной строке он покажет вам ответ. Мне просто интересно, почему он печатает 4 строки в функции add(), subtract(), multiply() и divide(). Я просто поместил их в словарь, а не называть их всех. Может ли кто-нибудь объяснить это мне, пожалуйста? Было бы здорово показать мне решение. Спасибо заранее!
Вот выход из окна мощности оболочки:
PS D:\misc\Code\python\mystuff> python .\CalculationTest.py
Please input a number:
>1
Please input a operator(i.e. + - * /):
>+
Please input another number:
>2
Adding 1 + 2 #why it shows these 4 lines?
Subtracting 1 - 2
Multiplying 1 * 2
Dividing 1/2
3
и вот мой код:
class Calculation(object):
def add(self, a, b):
print "Adding %d + %d" % (a, b)
return a + b
def subtract(self, a, b):
print "Subtracting %d - %d" % (a, b)
return a - b
def multiply(self, a, b):
print "Multiplying %d * %d" % (a, b)
return a * b
def divide(self, a, b):
if b == 0:
print "Error"
exit(1)
else:
print "Dividing %d/%d" % (a, b)
return a/b
def get_result(self, a, b, operator):
operation = {
"+" : self.add(a, b), # I didn't mean to call these methods,
"-" : self.subtract(a, b), # but it seems that they ran.
"*" : self.multiply(a, b),
"/" : self.divide(a, b),
}
print operation[operator]
if __name__ == "__main__":
print "Please input a number:"
numA = int(raw_input(">"))
print "Please input a operator(i.e. + - * /):"
operator = raw_input(">")
print "Please input another number:"
numB = int(raw_input(">"))
calc = Calculation()
#print calc.add(numA, numB)
calc.get_result(numA, numB, operator)
большое спасибо! Это очень полезно. – TommyKakashi