[Python] Problème d'attribut d'instance
Résolu/Fermé
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
-
23 août 2006 à 10:33
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 - 24 août 2006 à 14:38
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 - 24 août 2006 à 14:38
A voir également:
- [Python] Problème d'attribut d'instance
- Citizen code python avis - Accueil - Outils
- Attribut changer - Télécharger - Divers Utilitaires
- Ce programme est écrit en python ✓ - Forum Python
- Trouver la position d'un élément dans une liste python ✓ - Forum Python
7 réponses
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
64
24 août 2006 à 09:27
24 août 2006 à 09:27
SVP, personne ne peut m'aider ?
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
24 août 2006 à 11:09
24 août 2006 à 11:09
Hello.
tu pourrais montrer l'appel à clOptionsNom et l'accès à .numNom de ton code ?
tu pourrais montrer l'appel à clOptionsNom et l'accès à .numNom de ton code ?
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
64
24 août 2006 à 13:46
24 août 2006 à 13:46
Merci sebsauvage :)
Donc j'ai un menu qui va appeller une fonction. Voila un bout du code pour le menu :
Donc j'ai un menu qui va appeller une fonction. Voila un bout du code pour le menu :
class MenuBar(Frame): "Barre de menus déroulants" def __init__(self,boss=None): Frame.__init__(self,borderwidth=2) ### Menu <Joueur1> ### self.joueur1 = Menubutton(self,text='Joueur 1') self.joueur1.pack(side=LEFT) me1 = Menu(self.joueur1) me1.add_command(label='Changer Nom',underline=8,command=boss.changeNom1) me1.add_command(label='Changer Couleur',underline=8,command=boss.changeCouleur1) self.joueur1.configure(menu=me1)Et la fonction appellée est ici :
class Application(Frame): # init de Frame + paramètrage def changeNom1(self): clOptionsNom(self,1)Pour le moment il y a une fonction par joueur, mais je vais changer ça avec des expressions lambdas. Sauf que chaque chose en son temps, d'abord faire marcher correctement le truc de façon "simple".
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
24 août 2006 à 14:00
24 août 2006 à 14:00
Tu l'importe de où ton "Dialog" ?
Parcque malgré un "from Tkinter import *", il me dit:
Parcque malgré un "from Tkinter import *", il me dit:
Traceback (most recent call last): File "a.py", line 3, in ? class clOptionsNom(Dialog) : NameError: name 'Dialog' is not defined
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
64
24 août 2006 à 14:26
24 août 2006 à 14:26
Ah oui pardon, rajoute ça from tkSimpleDialog import *
C'est un module de tk comme son nom l'indique qui fournit déja des petits widgets simples de validation/choix.
C'est un module de tk comme son nom l'indique qui fournit déja des petits widgets simples de validation/choix.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
24 août 2006 à 14:32
24 août 2006 à 14:32
Ah !
ça y est, j'ai compris.
Dans ta class, tu redéfinis la méthode body() de tkSimpleDialog
Or cette méthode body() est appellée lorsque tu appelle le constructeur Dialog.__init__(self,boss)
A ce moment là, self.numNom n'existe pas encore.
Il suffit donc de mettre ton self.numNom = num juste avant l'appel à Dialog.__init__(self,boss)
ça y est, j'ai compris.
Dans ta class, tu redéfinis la méthode body() de tkSimpleDialog
Or cette méthode body() est appellée lorsque tu appelle le constructeur Dialog.__init__(self,boss)
A ce moment là, self.numNom n'existe pas encore.
Il suffit donc de mettre ton self.numNom = num juste avant l'appel à Dialog.__init__(self,boss)
Darshu
Messages postés
303
Date d'inscription
lundi 30 janvier 2006
Statut
Membre
Dernière intervention
3 avril 2008
64
24 août 2006 à 14:38
24 août 2006 à 14:38
Merciiiiiiiiii ! J'ai galéré pendant un temps pas possible, sans comprendre pourquoi ma variable d'instance n'était pas reconnue ! Merci beaucoup, j'aurais appris un truc important grâce à toi :)