-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransition.py
48 lines (37 loc) · 1.52 KB
/
transition.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
"""
Code à ne pas modifier
"""
class Transition :
"""Classe définissant une transition caractérisée par :
- une étiquette
- un état source
- un état de destination"""
def __init__ (self, stateSrc, etiquette, stateDest) :
""" State x str x State -> Transition
constructeur de transition
"""
self.etiquette = str(etiquette)
self.stateSrc = stateSrc
self.stateDest = stateDest
def __eq__(self, other) :
""" Val -> bool
rend le booléen vrai si la transition est égale à other, faux sinon
elle permet que == fonctionne pour les transitions
"""
return type(self)==type(other) and self.etiquette == other.etiquette and self.stateDest ==other.stateDest and self.stateSrc == other.stateSrc
def __ne__(self, other) :
""" Val -> bool
rend le booléen vrai si la transition est différente de other, faux sinon
elle permet que != fonctionne pour les transitions
"""
return not self.__eq__(other)
def __repr__(self) :
""" -> str
renvoie une description de la transition sous la forme d'une
chaîne de caractères contenant, entre crochets, l'état de
départ, un tiret, l'étiquette de transition, une flèche et
l'état final
elle permet d'utiliser print pour les transitions
"""
return '['+str(self.stateSrc)+'-'+str(self.etiquette)+'->'+str(self.stateDest)+']'