IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

NameError: name 'self' is not defined


Sujet :

Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Par défaut NameError: name 'self' is not defined
    j'aimerais savoir si quelqu'un sais comment résoudre cet exception NameError: name 'self' is not defined merci

  2. #2
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Juste un petit peu plus précis que :
    "Mon script ne fonctionne pas. Pourquoi ?"

    Ca veut dire que tu utilises "self" en "lecture" alors qu'il n'a pas été initialisé. De plus, self n'est pas un nom de variable neutre : il désigne l'instance d'une classe d'objets dans les méthodes de la classe.

    Sans plus d'infos, on ne peut pas être plus précis : envoie ton code !

  3. #3
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Petite précision : self n'est qu'une convention/bonne pratique pour la lisibilité du code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Foo():
        def __init__(self):
            pass
    Est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Foo():
        def __init__(tutu):
            pass
    @+

  4. #4
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    C'est sur.
    Comme cls dans les méthodes de classe. On peut aussi utiliser this si on est nostalgique de C++.

    Mais à ne pas trop suivre ces conventions, ça rend le code assez difficile à lire car inhabituel. Un peu comme en C avec des macros de la mort : BEGIN ... END pour chaque bloc, LOOP pour les boucles, etc... (j'en ai vu !)

  5. #5
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Oui, la lisibilité est essentielle.
    l = [0 for _ in xrange(10)]

    Dans l'attente d'un bout de code de amiraO à se mettre sous la dent donc.

Discussions similaires

  1. NameError: global name 'thread' is not defined
    Par Balbuzard dans le forum Général Python
    Réponses: 6
    Dernier message: 15/07/2009, 06h52
  2. Réponses: 4
    Dernier message: 19/06/2009, 15h23
  3. NameError: name 'nbBug' is not defined
    Par titi_lion dans le forum Général Python
    Réponses: 1
    Dernier message: 15/05/2009, 12h32
  4. NameError: global name 'entr2' is not defined
    Par noquioz dans le forum Tkinter
    Réponses: 18
    Dernier message: 24/11/2008, 11h20
  5. NameError: name 'excel' is not defined
    Par billyrose dans le forum Général Python
    Réponses: 3
    Dernier message: 14/07/2008, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo