Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens « NameError : le nom n'est pas défini » en Python ?

Pourquoi est-ce que j'obtiens « NameError : le nom n'est pas défini » en Python ?

DDD
DDDoriginal
2024-11-01 10:37:30497parcourir

Why am I getting

Correction de "NameError : le nom n'est pas défini" en Python

En Python, une erreur "NameError : le nom n'est pas défini" se produit lorsque vous tentez d'accéder à une variable ou une classe qui n'a pas été préalablement déclarée ou définie dans le code. Pour résoudre ce problème, une définition et une déclaration appropriées des variables et des classes sont essentielles.

Examinons l'extrait de code que vous avez fourni :

<code class="python">s = Something()
s.out()

class Something:
    def out():
        print("it works")</code>

L'erreur est causée par le fait que la classe Something est défini après il est utilisé pour créer une instance de lui-même. En Python, l'interpréteur interprète le code ligne par ligne, donc la classe Something n'est pas encore connue au moment où la ligne "s = Something()" est exécutée.

Pour résoudre ce problème, vous devez définissez la classe avant de l'utiliser. Voici le code corrigé :

<code class="python">class Something:
    def out(self):
        print("it works")

s = Something()
s.out()</code>

Notez que nous avons également ajouté self comme premier argument de la méthode out. Ceci est nécessaire pour les méthodes d'instance en Python, qui fonctionnent sur une instance d'objet spécifique. En passant self comme premier argument, la méthode peut accéder aux attributs de l'instance et modifier l'état de l'objet.

Avec ces corrections, le code s'exécutera sans NameError et affichera "ça marche" comme prévu.

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!

Déclaration:
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