l'appel d'une fonction de classe en python - différentes façon

EDIT2: Merci à tous pour votre aide!
EDIT: sur l'ajout de @staticmethod, il fonctionne. Cependant, je me demande encore pourquoi j'obtiens une erreur de type ici.

Je viens de commencer OUPS et je suis complètement nouveau pour elle. J'ai une question très simple concernant les différents moyens que je peux appeler une fonction d'une classe.
J'ai un testClass.py fichier avec le code:

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)

Je suis à l'appel de cette classe à partir d'un autre fichier appelé main.py avec le code suivant:

from testClass import MathsOperations

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

Cela fonctionne sans aucun problème. Cependant, je voulais utiliser la classe de façon beaucoup plus simple.

Je viens de mettre le code suivant dans la testClass.py fichier. J'ai abandonné la fonction init cette fois.

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

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

l'appel de cette aide;

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

cela ne fonctionne pas. Quelqu'un peut m'expliquer ce qui se passe, à tort, dans le cas 2? Comment puis-je utiliser cette classe?

L'erreur que j'obtiens est "TypeError: testAddition() prend exactement 2 arguments (3)"

OriginalL'auteur Rishav Sharan | 2011-11-01