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 :

Créez la méthode __init__()


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut Créez la méthode __init__()
    Bonjour à tous.

    JE dois créer la méthode __init__() et ajouter l'attribut sugar à votre instance pour que le nombre de cuillères à sucre sur notre gaufre soit égal à 2.
    La correction me donne ce code qui ne fonctionne pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    __init__(self):
      self.sugar = 2
    Mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Agent():
        def _init__(self):
            self.sugar = 2
        sugar = Agent(0)
    Il y a surement une petite erreur de débutant. J'ai pas du tout comprendre, mais j'ai pas de message d'erreur.
    J'ai essayé ça aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Agent:
        def __init__(self, sugar):
            self.sugar = 2
    first_agent = Agent(2)
    Merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 305
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class Agent:
        def __init__(self, sugar):
            self.sugar = 2
    first_agent = Agent(2)
    Ce code est correct mais si tu fournis l'argument (le nombre) alors c'est pour l'utiliser.

    N'hésite pas à abuser de print() pour voir ce que fait ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    class Agent:
        def __init__(self, sugar):
            self.sugar = sugar
            print("sugar: %s" % self.sugar)
    first_agent = Agent(2)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Bonjour et merci de ton aide. J'ai exécuter le code avec le print. Il me renvoi bien sugar = 2. Je comprends encore moins.

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 305
    Par défaut
    Explique ce qui te perturbes.

    Qu'attendais-tu comme résultat ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Par défaut
    Ce qui me perturbe est le fait que mon code est bon mais visiblement il réponds pas à la consigne qui est la suivante :

    Créez la méthode __init__() et ajoutez l'attribut sugar à votre instance pour que le nombre de cuillères à sucre sur notre gaufre soit égal à 2.

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 305
    Par défaut
    Si le nombre de cuillères doit être fixé par défaut, tu peux aussi faire def __init__(self, sugar=2): mais l'énoncé n'est pas précis sur ce point.

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par SeallerGhosT Voir le message
    Je dois créer la méthode __init__() et ajouter l'attribut sugar à votre instance pour que le nombre de cuillères à sucre sur notre gaufre soit égal à 2.
    La correction me donne ce code qui ne fonctionne pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    __init__(self):
      self.sugar = 2
    Ben déjà le correcteur aurait écrit "def" ce n'en serait que mieux. Ca va peut-être sans dire mais ça va encore mieux en le disant...

    Citation Envoyé par SeallerGhosT Voir le message
    Mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Agent():
        def _init__(self):
            self.sugar = 2
        sugar = Agent(0)
    Manque un "_". C'est def __init__() et non def _init__().

    Citation Envoyé par SeallerGhosT Voir le message
    mais j'ai pas de message d'erreur.
    Pas normal. Tu demandes à créer un objet avec un argument, alors que la méthode __init__() qui est utilisée par défaut (vu que tu n'en as pas écrit une spécifique) est sans argument. Ca aurait dû te répondre "TypeError: this constructor takes no arguments"...

    Citation Envoyé par SeallerGhosT Voir le message
    J'ai essayé ça aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Agent:
        def __init__(self, sugar):
            self.sugar = 2
    first_agent = Agent(2)
    Là ça fonctionne mais le paramètre "sugar" (à ne pas confondre avec l'attribut "sugar" de la classe) n'étant pas réutilisé dans la méthode, il ne sert à rien. Tu aurais écrit first_agent = Agent(500) ce serait pareil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Agent:
        def __init__(self):
            self.sugar = 2
     
    first_agent = Agent()
    print first_agent.sugar
    Ou bien (comme l'a dit VinsS) le paramètre est facultatif...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Agent:
        def __init__(self, sugar=2):
            self.sugar = sugar
     
    first_agent = Agent()
    print first_agent.sugar            # Affichera 2
    second_agent = Agent(150)
    print second_agent.sugar      # Affichera 150
    ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Méthodes]UML vs MERISE Lequel pour quoi ?
    Par Daniel258 dans le forum Méthodes
    Réponses: 5
    Dernier message: 31/03/2003, 11h49
  2. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10
  3. [Singleton] Différences avec méthodes statiques
    Par Franche dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/02/2003, 17h10
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

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