Maison >développement back-end >Tutoriel Python >Pourquoi l'appel de « getPumps() » entraîne-t-il une « TypeError : argument « self » requis manquant dans l'appel de méthode ?
TypeError : argument 'self' requis manquant dans l'appel de méthode
L'extrait de code présenté tente d'appeler la méthode getPumps() de la pompe classe sans créer au préalable une instance de la classe. Cela entraîne l'erreur suivante :
TypeError: getPumps() missing 1 required positional argument: 'self'
Comprendre les arguments du constructeur et de la méthode
En Python, lors de la définition d'une méthode au sein d'une classe, le premier argument est toujours self , qui fait référence à l'instance d'objet actuelle. C'est ainsi que les méthodes accèdent et manipulent les données spécifiques à une instance.
Initialisation avec __init__()
La méthode __init__() est la méthode constructeur appelée lorsqu'une instance d'un la classe est créée. Il permet d'initialiser l'état interne de l'objet.
Appel de méthodes sur des instances
Pour appeler une méthode sur un objet, il faut d'abord créer l'objet. Cela implique d'appeler le nom de la classe avec des parenthèses, comme p = Pump(), pour créer un nouvel objet. Ce n'est qu'alors que vous pourrez appeler des méthodes sur cette instance, telles que p.getPumps().
Mise à jour du code
Pour résoudre l'erreur, vous devez créer une instance de la classe Pump avant d’appeler getPumps(). Le code mis à jour :
class Pump: def __init__(self): print("init") def getPumps(self): pass # Create an instance of the Pump class p = Pump() # Now call the getPumps() method p.getPumps()
Exemple supplémentaire
Pour plus de clarté, voici un exemple plus détaillé :
class TestClass: def __init__(self): print("init") def testFunc(self): print("Test Func") # Create an instance of the test class testInstance = TestClass() # Call the testFunc() method on the instance testInstance.testFunc()
Sortie :
init Test Func
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!