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 задано)»