Comment éviter les importations circulaires en Python ?

|

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).

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method