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
Libérer: 2024-10-31 03:06:02
original
688 Les gens l'ont consulté

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

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

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

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!