вызов функции из класса в python - другой способ

EDIT2: Спасибо всем за вашу помощь! EDIT: при добавлении @staticmethod он работает. Однако мне все еще интересно, почему я получаю здесь ошибку типа.

Я только что начал работать с OOPS и совершенно новичок в этом. У меня очень простой вопрос относительно различных способов вызова функции из класса. У меня есть файл testClass.py с кодом:

class MathsOperations:
    def __init__ (self, x, y):
        self.a = x
        self.b = y
    def testAddition (self):
        return (self.a + self.b)

    def testMultiplication (self):
        return (self.a * self.b)

Я вызываю этот класс из другого файла с именем main.py со следующим кодом:

from testClass import MathsOperations

xyz = MathsOperations(2, 3)
print xyz.testAddition()

Это работает без проблем. Однако я хотел использовать этот класс более простым способом.

Я поместил следующий код в файл testClass.py. На этот раз я отказался от функции инициализации.

class MathsOperations:
    def testAddition (x, y):
        return x + y

    def testMultiplication (a, b):
        return a * b

вызывает это с помощью;

from testClass import MathsOperations
xyz = MathsOperations()
print xyz.testAddition(2, 3)

это не работает. Может кто-нибудь объяснить, что происходит неправильно в случае 2? Как мне использовать этот класс?

Я получаю сообщение об ошибке «TypeError: testAddition () принимает ровно 2 аргумента (3 задано)»

10
задан Rishav Sharan 1 November 2011 в 10:42
поделиться