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

Pourquoi est-ce que j'obtiens une erreur « NameError : le nom n'est pas défini » lors de l'utilisation d'une classe en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-31 03:06:02689parcourir

Why Am I Getting a

Python NameError : Dépannage d'une classe non définie

Lorsque vous rencontrez l'erreur "NameError : le nom n'est pas défini" dans Python, cela indique souvent que le Le programme tente d'utiliser une variable ou une classe qui n'a pas été définie ou importée. Dans ce cas, le code illustre l'erreur :

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

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

Explication de l'erreur :

La définition de classe pour Something est placée après la ligne où vous tentez de créer un nouvelle instance de Quelque chose. Cela signifie que lorsque l'interpréteur atteint la ligne s = Something(), la classe Something n'a pas encore été définie.

Solution :

Pour résoudre ce problème, vous doit toujours définir les classes avant d'essayer de les utiliser. Dans ce cas, déplacez la définition de classe avant la ligne où vous créez l'instance Something :

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

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

Passing Self to Instance Methods :

Dans le code fourni, il manque le paramètre self dans la méthode out. Les méthodes d'instance dans les classes nécessitent self comme premier argument, qui représente l'instance de la classe elle-même. Pour corriger cela, vous devez modifier la définition de la méthode out pour inclure self :

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

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