Maison > développement back-end > Tutoriel Python > Pourquoi est-ce que j'obtiens l'erreur « TypeError : Missing 1 Required Positional Argument : 'self' » en Python ?

Pourquoi est-ce que j'obtiens l'erreur « TypeError : Missing 1 Required Positional Argument : 'self' » en Python ?

DDD
Libérer: 2024-12-17 17:00:13
original
340 Les gens l'ont consulté

Why Am I Getting the

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'
Copier après la connexion

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)
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal