Comprendre l'erreur « TypeError : Missing 1 Required Positional Argument : 'self' »
Lorsque vous travaillez avec des classes et des objets en Python, vous peut rencontrer un message d'erreur qui se lit comme ceci :
TypeError: Missing 1 required positional argument: 'self'
Cette erreur se produit lorsque vous appelez une classe méthode sans fournir le paramètre self. Toutes les méthodes de classe nécessitent le paramètre self comme premier argument.
Comment Python initialise les classes
Pour comprendre cette erreur, il est important de savoir que lorsque vous créez une instance de une classe, la méthode constructeur (__init__) est automatiquement invoquée. Cette méthode se charge d'initialiser les attributs de l'objet.
Appel des méthodes de classe
Une fois qu'un objet est créé, vous pouvez appeler ses méthodes. Ces méthodes ont accès aux attributs et fonctionnalités de l'objet. Cependant, n'oubliez pas que toutes les méthodes de classe nécessitent le paramètre self, qui fait référence à l'instance de la classe sur laquelle la méthode est appelée.
Dépannage de l'erreur
Dans votre exemple de code :
class Pump: def __init__(self): print("init") def getPumps(self): pass p = Pump.getPumps() # Error here print(p)
L'erreur se produit parce que vous appelez getPumps() sans fournir l'argument self. Pour résoudre ce problème, vous devez d'abord créer une instance de la classe Pump, puis appeler la méthode getPumps() sur cette instance :
p = Pump() p.getPumps()
Maintenant, le constructeur __init__ sera invoqué lorsque vous créez l'instance, et la méthode getPumps() aura accès au paramètre self, lui permettant d'opérer sur l'instance spécifique de la classe.
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!