Bonjour,
Apres avoir passé une journée entière à chercher ma réponse sur des forums, je vais donc poser mon problème qui est déjà abordé 100 fois mais auquel je n'ai pas trouvé la solution qui me convient.
Je suis en train de voir le Design pattern Etat. J'ai donc structuré mon code en trois fichier:
1) L'interface et les classes concrètes Etat
2) L'interface et ma classe objet (içi c'est le distributeur de bonbon "Tête la première")
3) Le fichier pour tester ma classe avec ses etats.
J'ai besoin pour mon objet d'importer les classes concrètes Etat de sort que mon objet puisse fournir les méthodes getEtatVendu, getEtatEpuise, setEtat...
jusque à là aucun probleme je n'ai qu'a importer mon module etat :
from DesignPattern.Design8Etat import etat
Bon et à ce moment là, je décide d'écrire mon module etat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class iEtat(object):
def __init__( self, distributeur ):
self._distributeur = distributeur
def insererPiece( self ):
pass
def ejecterPiece( self ):
pass
def tournerPoignet( self ):
pass
def delivrer( self ):
pass |
en suivant cette logique, tout fonctionne, cependant comme je travaille sur pyCharm, si je type "distributeur" comme ça :
def __init__( self, distributeur: clsDistributeur ):
alors ça devient beaucoup plus simple de coder en utilisant l'IDE, il détecte automatiquement les méthodes de distributeur etc...
pour faire ça il faudrait que j'importe mon module objet (qui contient clsDistributeur) dans mon module "etat".
Donc j'en viens à créer un import circulaire.
Avez-vous une solution à me donner ?
J'en peux plus du serpent qui se mord la queue !!!
Partager