Bonjour à tous,
Je ne sais pas si je suis exactement dans le bon forum. Le cas échéant, merci à un modérateur de le mettre à sa meilleure place.
Je m'initie à la programmation objet à l'aide du HS N°77 de Linux Mag. (sans vouloir faire de pub)
Etant débutant, je suis pour l'instant scrupuleusement ce qui est proposé dans ce mook et ai donc installé l'EDI Eclipse Luna (4.4.2) + PyDev (3.9.2).
Au tout début de cette formation, dans la création/définition d'une classe (Carte.py) on teste la validité des deux arguments de cette classe et dans le cas contraire, on arrête l'exécution du programme par un exit(1) :
Mon pb est que si je teste cette classe, et surtout si je fais volontairement une erreur (pour vérifier les if) dans la console intéractive Python, dès la 1ère erreur je ne peux plus rien tester : je suis obligé d'arrêter la console courante et d'en ouvrir une autre pour recommencer mes tests :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class Carte: valeurs = (None, None, 2, 3, 4, 5, 6, 7, 8, 9, 10, "Valet", "Dame", "Roi", "As") couleurs = ("Coeur", "Carreau", "trèfle", "Pique") def __init__(self, val, coul): if val < 2 or val > 14: print("Erreur : La valeur d'une carte est comprise entre 2 et 14") exit(1) if coul < 0 or coul > 3: print("Erreur : Le code couleur d'une carte est compris entre 0 et 3") exit(1) self.valeur = val self.couleur = coul def __str__(self): return str(Carte.valeurs[self.valeur]) + " de " + Carte.couleurs[self.couleur]
Le message d'erreur me dit que la console a déjà été quittée avec la valeur 1... certes, mais vu que j'ai toujours la main et que ma classe est toujours chargée je devrais pouvoir continuer mes tests, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 >>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) PyDev console: starting. >>> /usr/bin/python3.2 3.2.3 (default, Feb 20 2013, 14:44:27) [GCC 4.7.2] >>> from Carte import Carte >>> c1 = Carte(4,1) >>> print(c1) 4 de Carreau >>> c2 = Carte(13,5) Erreur : Le code couleur d'une carte est compris entre 0 et 3 >>> c2 = Carte(13,2) Console already exited with value: 1 while waiting for an answer. >>> print(c2) Console already exited with value: 1 while waiting for an answer. >>> print(c1) Console already exited with value: 1 while waiting for an answer. >>> Console already exited with value: 1 while waiting for an answer. >>>
Vu mon niveau et comme je n'ai encore jamais utilisé d'EDI (jusqu'à présent : vi + interpréteur Python) je ne sais pas si cette erreur est normale, ou si je me suis planté quelque part (j'ai pourtant re-vérifié plusieurs fois) ou encore si c'est l'auteur du mook qui a fait une erreur.
J'ai aussi cherché sur le Net mais je n'ai rien trouvé s'approchant précisément de mon pb.
Merci pour votre aide,
Cordialement
Eric
Partager