Возникли проблемы с вызовом и распечаткой из класса - PullRequest
1 голос
/ 25 марта 2019

Я работаю над домашним заданием, в котором мы создаем класс для использования в программе, которая будет использоваться для выполнения базовых математических вычислений по отдельности или для всех вычислений одновременно.Так что сложите, вычтите, умножьте, разделите или все четыре.

Я думаю, что большая часть кода хороша, но я не могу заставить его напечатать после того, как пользователь введет свои числа и выберет метод вычисления.Я пробовал печатать (Week7.addNum), печатать (Week7.addNum ()), печатать (Week7.addnum (numOne, numTwo)).Я получаю различные ошибки или ничего.С печатью (Week7.addnum) я получаю.Я работал только над функцией добавления и подумал, смогу ли я заставить это работать, а остальные следуют его примеру.

class Week7:

    def __init__(self, numOne, numTwo):
        self.numOne = numOne
        self.numTwo = numTwo

    def addNum(self):
        return (self.numOne + self.numTwo)

    def subtNum(self):
        return (self.numOne - self.numTwo)

    def multNum(self):
        return (self.numOne * self.numTwo)

    def divNum(self):
        if self.numTwo !=0:
            return (self.numOne / self.numTwo)
        else:
            return print('You can not divde by 0')

    def allNum(self):
        return (self.numOne + self.numTwo, self.numOne - self.numTwo,     self.numOne * self.numTwo, self.numOne / self.numTwo )



numOne=int(input("Enter first number: "))
numTwo=int(input("Enter second number: "))
functions = [ "1) Add two numbers",
          "2) Mult two numbers",
          "3) Divide two numbers",
          "4) Subtract two numbers",
          "5) All in one: Perform all math Operations",
          "6) End Program" 
        ]
for x in functions:                  
      print( x )
print()


which_Function = int(input("Please select what operation you would like to perform: ") )



if which_Function == 1:
     print(Week7.addNum)

elif which_Function == 2:
     Week7.subtNum(self)

elif which_Function == 3:
     Week7.multNum(self)

elif which_Function == 4:
     Week7.divNum(self)

elif which_Function == 5:
     Week7.allNum(self)

elif which_Function == 6:
     exit

Я думаю, что все работает, кроме фактической печати проблемы.Я хочу получить "1 + 2 = 3" в качестве примера.Я знаю, что мне нужно поставить «+» и «=» на распечатке, но я могу выяснить, где мне их вообще напечатать.Заранее спасибо.Dave

Ответы [ 2 ]

1 голос
/ 25 марта 2019

Отредактированный код, должен работать:

class Week7:

    def __init__(self, numOne, numTwo):
        self.numOne = numOne
        self.numTwo = numTwo

    def addNum(self):
        return (self.numOne + self.numTwo)

    def subtNum(self):
        return (self.numOne - self.numTwo)

    def multNum(self):
        return (self.numOne * self.numTwo)

    def divNum(self):
        if self.numTwo !=0:
            return (self.numOne / self.numTwo)
        else:
            return print('You can not divde by 0')

    def allNum(self):
        return (self.numOne + self.numTwo, self.numOne - self.numTwo,     self.numOne * self.numTwo, self.numOne / self.numTwo )



numOne=int(input("Enter first number: "))
numTwo=int(input("Enter second number: "))

w7 = Week7(numOne, numTwo)

functions = [ "1) Add two numbers",
          "2) Mult two numbers",
          "3) Divide two numbers",
          "4) Subtract two numbers",
          "5) All in one: Perform all math Operations",
          "6) End Program" 
        ]
for x in functions:                  
      print( x )
print()


which_Function = int(input("Please select what operation you would like to perform: ") )



if which_Function == 1:
     print(w7.addNum())

elif which_Function == 2:
     print(w7.multNum())

elif which_Function == 3:
     print(w7.divNum())

elif which_Function == 4:
     print(w7.subtNum())

elif which_Function == 5:
     print(w7.allNum())

elif which_Function == 6:
     exit()

Объяснение изменений:

  • w7 = Week7(numOne, numTwo) создать экземпляр объекта Week7
  • print(w7.addNum()) вызовите функцию и распечатайте вывод.
  • --ditto--mult----- и т. Д.

Я также изменил порядок, потому что он не относится к тому, что отображалось.

0 голосов
/ 25 марта 2019

Вам нужно создать экземпляр вашего класса. Попробуйте что-то вроде:

instance = Week7(numOne, numTwo)

if which_Function == 1:
   print(instance.addNum())

elif which_Function == 2:
   print(instance.subtNum())

...

Объект, который я назвал instance, - это то, что будет передано в методы как self, поскольку это то, для чего вы их вызываете. При поиске instance.addNum вы получите объект «связанный метод», который автоматически передаст вам аргумент.

...