Bonjour
J'ai un problème avec une classe X qui fait référence à une classe Y et une classe Y qui fait référence à une classe X. Et je n'arrive pas à trouver la bonne syntaxe pour que ça marche (comme une espèce de déclaration avant création comme en C)
Exemple
fichier "toto.py"
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/usr/bin/env python # -*- coding: UTF-8 -*- from titi import * class toto: def __init__(self): self.other=titi
fichier "titi.py"
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/usr/bin/env python # -*- coding: UTF-8 -*- from toto import * class titi: def __init__(self): self.other=toto
fichier "main.py"
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/usr/bin/env python # -*- coding: UTF-8 -*- from toto import * from titi import * a=toto() b=titi()
Bien évidemment ca plante (il me dit qu'il ne connait pas toto et si j'inverse les deux import alors c'est titi qui n'est plus connu). Je pensais pourtant qu'en ne mettant pas de parenthèses dans "other=toto" cela ne créait pas d'instance de classe mais stockait dans other seulement une référence vers la classe et que l'instance serait créée au moment ou j'appellerais a.other()
Est-ce qu'il y a une solution à mon problème ???
Merci à tous.
Partager