Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur d'attribut Python

Sujet résolu
    24 mai 2019 à 12:57:01

    Bonjour à tous et à toutes.

    Je suis novice en python et je commence à programmer une bataille navale avec le module tkinter.

    Tout se passe très bien cependant je bloque sur un problème vraiment bête.

    bateau + '_joueur'.itemconfigure(carreau_porte_avion_joueur[0][0],fill = 'lightgreen')

    avec cette ligne je veux pouvoir colorier les canvas qui correspondent aux différents bateaux posés par le joueur. Cependant a cause de la concaténation du nom du canvas :

    bateau + '_joueur'

    je me retrouve avec un str qui n'est pas reconnu par python comme étant le nom du canvas.

    On me renvoie donc cette erreur :

    AttributeError: 'str' object has no attribute 'itemconfigure'

    Ainsi j'aimerais savoir si il existe des solutions pour régler ce problème, ou si je change de méthode.

    Merci à tous pour votre aide et bonne journée :D


    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2019 à 13:06:15

      Parce qu'une chaine de caractères n'est pas un nom de variable !

      Il faut utiliser une structure de données pour faire ce que tu veux faire, plutôt que d'avoir une variable par donnée et de "forger" un nom de variable en manipulant des chaines.

      Par exemple si chaque joueur est représenté par un dictionnaire, il peut avoir un attribut "bateaux" qui contient la liste des bateaux du joueur :

      joueur = {"nom": "joueur1",
                "bateaux": ["b1", "b2"]}

      Après tu remplaces les valeurs bidons que j'ai entrées par ce dont tu as besoin.

      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        24 mai 2019 à 16:00:31

        Il y a bien une solution mais la commu va gueuler si j'en parle ^^

        En effet, il vaut mieux te pencher sur un dico ou une class ^^

        • Partager sur Facebook
        • Partager sur Twitter

         "Je ne crois qu'en une seule chose : le pouvoir de la volonté humaine."  - Joseph Stalin

          25 mai 2019 à 12:55:42

          Merci beaucoup pour vos réponses. Je ne vais pas vous cacher que j'appréhende difficilement les classes mais d'après ce que je vois il va falloir que je m'y penche ^^ Je ferais des recherches pour me renseigner en attendant si jamais vous avez des conseils rapides je suis preneur :lol:
          • Partager sur Facebook
          • Partager sur Twitter

          Erreur d'attribut Python

          × 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