Orienté objet : conteneurs
Lecteurs de ce message, je vous salue.
Nous développons en équipe un programme avec une interface graphique Tkinter. Cette interface contient des classes de conteneurs (3 canvas et 2 frames) dont un est utilisé par un retour vidéo grâce à la librairie OpenCV. Ils sont tous créés à partir d'une classe de base, Fenetre, où est créée la fenêtre comportant tous les conteneurs. Plusieurs fois nous appelons un conteneur depuis un autre. Le but recherché est de mettre à jour les éléments de certains conteneurs (variables, labels, etc) depuis d'autres conteneurs.
En langage Java par exemple, on peut faire un ConteneurX.getInstance(), en python pas explicitement. Pour cela on utilise des threads ou des appels d'instances bricolés :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
def getInstance(cls):
instance = None
def singleton(*args):
nonlocal instance
if not instance:
instance = cls(*args)
return instance
return singleton
@getInstance
class ConteneurA(Conteneur):
...blabla... |
ou alors
Code:
1 2 3 4 5
|
class ConteneurB(Conteneur, Thread):
def __init__(self, argument):
Thread.__init__(self)
...blabla... |
Est-ce une bonne approche ?
Merci de vos futures réponses.