Problème héritage # 4 (- update- ) [ Python ] - Python - Programmation
Marsh Posté le 27-04-2003 à 15:34:20
for i in liste te renvoit directement chacun des élément de la liste et pas juste un index, au lieu d'utiliser liste[i], utilise directement i.
Marsh Posté le 27-04-2003 à 15:55:55
Le problème c'est que j'aurai voulu deleter la ligne qui correspond au test de mon if et vu que for i in liste ne me retourne pas un index je suis un peu coincé.
CHaiCA
Marsh Posté le 27-04-2003 à 17:47:19
Code :
|
Citation : Exception in Tkinter callback |
Décidemment je m'en sors pas...
CHaiCA
Marsh Posté le 27-04-2003 à 18:04:46
ben si tu effaces, la taille de ta liste varie, il faut donc faire
i=0 |
Marsh Posté le 28-04-2003 à 16:44:16
Code :
|
Edit: oops
Marsh Posté le 28-04-2003 à 18:28:11
Et avec ca :
Code :
|
Toujours faire un tour dans la bibliotheque standard pour des fonctions basiques comme ca
Marsh Posté le 28-04-2003 à 18:59:16
Etant donné que mon code commencait à être un brin long, j'ai subdivisé en utilisant les modules mais apparemment j'ai un chtit problème.
Je précise que le code marche bien quand il est dans un seul fichier donc c'est lié aux liens entre modules.
Code :
|
Dans le module fichs j'ai juste une classe fichier
et il me sort ca
Citation : chaica@debian:~/progra/python/exos/split_ag$ ./agenda.py |
si ca vous dit quelque chose...
CHaiCA
Marsh Posté le 28-04-2003 à 22:11:13
Bon j'ai résolu l'autre problème mais j'ai quelque chose qui m'ennuie car j'ai été obligé de mettre deux classes que je voulais séparer ensemble.
Code :
|
Parce que si je les séparais dans des modules diifférents les méthodes de MenuBar n'avait plus accès à l'objet app.
Je ne comprends pas bien pourquoi? Quelqu'un peut me donner la marche à suivre?
CHaiCA
Marsh Posté le 28-04-2003 à 22:13:28
chaica a écrit : |
je suppose que tu séparais entre la classe MenuBar et le reste ?
dans ce cas c'est parfaitement logique, app est défini dans le module du bas... donc inconnu dans celui du haut, sauf import qui va bien
Marsh Posté le 28-04-2003 à 22:20:11
Ben en fait chaque classe est dans un module.
Sauf les deux que j'ai affiché que je n'arrive pas à séparer.
le module agenda contenait la présente classe agenda
je faisais donc from agenda import * mais l'interpréteur me signifiait que la classe MenuBar ne voyait pas l'objet app.
ChaiCA
Marsh Posté le 28-04-2003 à 22:22:52
app est local a ton bloc if a mon avis...
si tu mets un
app = None devant le if __name__ == "__main__":, ca devrait aller
Marsh Posté le 28-04-2003 à 22:34:21
Hélas non ca ne passe pas.
Parce que là ce que j'essaie de faire, c'est à partir d'un module atteindre un objet instancié dans un autre module, c'et possible ca? on ne peut pas que utiliser des classes ou des méthodes d'un module?
CHaiCA
Marsh Posté le 28-04-2003 à 22:36:07
chaica a écrit : |
encore heureux... parce qu'une méthode, ca n'est jamais qu'une instance d'objet...
sys.stdout par exemple, c'est une instance de fichier, ...
Marsh Posté le 28-04-2003 à 22:41:32
Non ce n'est pas possible, je viens de faire un test + simple mais qui est semblable à ma situation :
Le module mod1.py :
Code :
|
Le pro principal qui fait l'appel vers le module :
Code :
|
Et j'ai exactement la même erreur que dans mon programme actuel.
Citation : chaica@debian:~/progra/python/exos$ ./exocModule.py |
ou alors il y a quelque chose qui m'échappe totalement
CHaiCA
Marsh Posté le 28-04-2003 à 22:41:39
chaica a écrit : Hélas non ca ne passe pas. |
il rale parce que la méthode n'existe pas dans None (pensais pas que y'avait des verifs a ce moment), mais pas parce qu'il ne trouve pas la variable.
exemple :
toto.py
Code :
|
tata.py
Code :
|
Marsh Posté le 28-04-2003 à 22:42:32
chaica a écrit : Non ce n'est pas possible, je viens de faire un test + simple mais qui est semblable à ma situation : |
moi aussi, mais le mien marche
Marsh Posté le 28-04-2003 à 22:46:49
Mais le tien je comprends qu'il marche car toto est instancié dans ton prog principal alors que dans le mien il est instancié dans le module.
Chez toi toto.py est le module et tata.py le prog principal, mon prog n'est pas le même.
CHaiCA
Marsh Posté le 28-04-2003 à 22:47:48
Mais c'est pas grave j'ai compris pourquoi ca marchait pas au moins, c'est ce que je voulais
CHaiCA
Marsh Posté le 28-04-2003 à 22:48:38
chaica a écrit : Mais le tien je comprends qu'il marche car toto est instancié dans ton prog principal alors que dans le mien il est instancié dans le module. |
c'est dans l'autre sens qu'il faut lire...
dans toto.py, j'accede a la variable tata de tata.py, comme tu voudrais acceder a app défini dans le programme principal a partir de MenuBar...
Marsh Posté le 27-04-2003 à 15:29:40
Et à l'execution ca me sort ca :
chaica@debian:~/progra/python/exos$ ./agenda.py
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.2/lib-tk/Tkinter.py", line 1343, in __call__
return apply(self.func, args)
File "./agenda.py", line 165, in deleterPersonne
if ((string.find(liste[i],self.ent1.get())) != -1) and ((string.find(liste[i],self.ent2.get())) != -1):
TypeError: sequence index must be integer
Je pige pas trop.
CHaiCA
Message édité par chaica le 28-04-2003 à 22:12:04