Pythonで循環インポートを回避する方法は?

|

pythonでの循環インポートの問題が以前に何度も発生したことを知っており、これらの説明を読んだことがあります。これらの議論で繰り返し行われるコメントは、循環インポートは不適切な設計の兆候であり、循環インポートを回避するためにコードを再編成する必要があるというものです。

循環インポートを回避する方法を教えてもらえますかこの状況では?:2つのクラスがあり、各クラスに、他のクラスのインスタンスを取得してクラスのインスタンスを返すコンストラクター(メソッド)を持たせたい。

より具体的には、1つのクラスは可変であり、1つは不変です。不変クラスは、ハッシュや比較などに必要です。可変クラスは物事を行うためにも必要です。これは、セットとフリーズセット、またはリストとタプルに似ています。

両方のクラス定義を同じモジュールに入れることができます。他に提案はありますか?

おもちゃの例としては、リストである属性を持つクラスAと、タプルである属性を持つクラスBがあります。次に、クラスAにはクラスBのインスタンスを取得してクラスAのインスタンスを返すメソッドがあり(タプルをリストに変換することにより)、同様にクラスBにはクラスAのインスタンスを取得してクラスBのインスタンスを返すメソッドがあります。 (リストをタプルに変換することによって)。

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