Je sais que la question des importations circulaires en python a déjà été soulevée à plusieurs reprises et j'ai lu ces discussions. Le commentaire qui est fait à plusieurs reprises dans ces discussions est qu'une importation circulaire est le signe d'une mauvaise conception et que le code doit être réorganisé pour éviter l'importation circulaire.
Quelqu'un pourrait-il me dire comment éviter une importation circulaire dans cette situation ? : J'ai deux classes et je veux que chaque classe ait un constructeur (méthode) qui prend une instance de l'autre classe et renvoie une instance de la classe.
Plus précisément, une classe est mutable et un est immuable. La classe immuable est nécessaire pour le hachage, la comparaison, etc. La classe mutable est également nécessaire pour faire des choses. Ceci est similaire aux ensembles et aux frozensets ou aux listes et aux tuples.
Je pourrais mettre les deux définitions de classe dans le même module. Y a-t-il d'autres suggestions ?
Un exemple de jouet serait la classe A qui a un attribut qui est une liste et la classe B qui a un attribut qui est un tuple. Ensuite, la classe A a une méthode qui prend une instance de la classe B et renvoie une instance de la classe A (en convertissant le tuple en une liste) et de même la classe B a une méthode qui prend une instance de la classe A et renvoie une instance de la classe B (en convertissant la liste en tuple).