Partage
  • Partager sur Facebook
  • Partager sur Twitter

[python] Comment ça c'est pas ton type ?

AttribueError: 'NoneType' object has no attribute '...'

Sujet résolu
    4 août 2015 à 9:53:42

    Bonjour à toutes et a tous,

    Toujours sur mon projet de pendu en python (et tkinter), j'en suis à l'étape où l'on transvase le code du jeu dans une fenêtre.

    Donc : j'ai une fenêtre de type menuhome et, au lieu d'en créé une nouvelle, je veux supprimer les élément "Welcome !" et le bouton avec la corde et redimensionner la fenêtre.

    Sauf que : sa fait trois jours que je me ruine la santé à supprimer le bouton :p.

    J'ai essayer plusieurs syntaxe, j'ai emprunter le code d'un manuel, etc, etc ... Mais rien n'y fait, mon invite de commande me répond :

    AttribueError: 'NoneType' object has no attribute '...'

    Le '...' symbolisant la syntaxe utilisée.

    Les données:

    Du bouton:

    picture = PhotoImage(file = "pictures/rope.png").zoom(1).subsample(2)
    
    button_start = Button(image = picture, command = hello).pack()

    Et de hello():

    def hello(): 
    	os.startfile('hangman.py')
    	button_start.destroy()

    Je lance une bouteille à la mer ! 

    Merci d'avance




    -
    Edité par Lozul 5 août 2015 à 9:12:53

    • Partager sur Facebook
    • Partager sur Twitter
      4 août 2015 à 10:10:16

      ça dit pas à quelle ligne se trouve l'erreur ...
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        4 août 2015 à 10:40:58

        L'erreur vient quand l'invite essaye 

        button_start.destroy()

        Dans ce cas, il me renvoi:

        AttribueError: 'NoneType' object has no attribute 'destroy'

        Merci.


        -
        Edité par Lozul 4 août 2015 à 10:41:31

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          4 août 2015 à 11:04:17

          N'économise pas tes lignes, fait quelque chose de toujours lisible, ça te rendra toujours service

          button_start = Button(image = picture, command = hello)
          button_start.pack()
          button_start.destroy()



          • Partager sur Facebook
          • Partager sur Twitter
            4 août 2015 à 12:16:50

            Il faudrait surtout expliquer que la methode pack retourne None. Donc dans ton code, button_start vaut None. Dans la version d'OldProgammer, button_start vaut bien une instance de Button.

            -
            Edité par Dan737 4 août 2015 à 12:18:49

            • Partager sur Facebook
            • Partager sur Twitter
              5 août 2015 à 9:11:52

              Maintenant sa fonctionne.

              Merci oldProgrammer pour le code et merci Dan737 pour les explications :).

              • Partager sur Facebook
              • Partager sur Twitter

              [python] Comment ça c'est pas ton type ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown