Maison > développement back-end > Tutoriel Python > Pourquoi mon code Python renvoie-t-il une « TypeError : manquant 1 argument de position requis : 'self'' ?

Pourquoi mon code Python renvoie-t-il une « TypeError : manquant 1 argument de position requis : 'self'' ?

DDD
Libérer: 2024-12-14 19:59:14
original
411 Les gens l'ont consulté

Why Does My Python Code Throw a

Pourquoi TypeError : il manque 1 argument de position requis : 'self' se produit

En Python, lorsque vous travaillez avec des classes, on peut rencontrer une exception en appelant une méthode de classe. Le message d'erreur spécifique "TypeError : Missing 1 require positional argument: 'self'" indique que la méthode constructeur n'a pas été correctement appelée pour créer une instance de la classe avant d'appeler la méthode.

Comprendre l'objectif de 'self'

'self' est une variable spéciale qui est automatiquement passée comme premier argument à toutes les méthodes de classe (y compris le constructeur). Il représente l'instance de la classe et donne accès à ses attributs et méthodes.

Invocation de constructeur

Une méthode constructeur (__init__) doit être appelée pour initialiser une instance de classe . Pour l'invoquer, il faut instancier la classe en créant un objet en utilisant la syntaxe ClassName(). Cela attribue l'argument self à l'instance et initialise ses attributs et comportements.

Exemple de clarté

Considérez l'extrait de code suivant :

class Pump:
    def __init__(self):
        print("init")

    def getPumps(self):
        pass

p = Pump.getPumps()  # Error: TypeError: getPumps() missing 1 required positional argument: 'self'
print(p)
Copier après la connexion

Dans ce code, le constructeur (__init__) n'est pas appelé avant d'appeler getPumps(). Par conséquent, aucune instance de la classe Pump n'est créée et l'argument self est manquant, ce qui entraîne l'erreur.

Solution

Pour résoudre le problème, il faut d'abord créez une instance de la classe Pump, puis appelez la méthode getPumps() sur l'instance. Le code correct serait :

p = Pump()
p.getPumps()
print(p)
Copier après la connexion

En créant d'abord une instance, l'argument self est correctement attribué et la méthode getPumps() peut être invoquée avec succès.

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