windows 10、Python 3.9.1 の環境です
https://i.imgur.com/27ebmLL.jpeg

インポートの仕様についてですが、以下のファイルがあります
/run.py
/modules/a1.py
/modules/a2.py

runはa1を読み込んでいて、a1とa2はお互いに依存しているのでお互いをimportしています。
ここでrun.py を実行すると以下のエラーが表示されます。

Traceback (most recent call last):
File "C:\run.py", line 2, in <module>
from modules.a1 import A1C
File "C:\modules\a1.py", line 2, in <module>
from modules.a2 import A2C
File "C:\modules\a2.py", line 2, in <module>
from modules.a1 import A1C
ImportError: cannot import name 'A1C' from partially initialized module 'modules.a1' (most likely due to a circular import) (C:\modules\a1.py)

エラーの内容はrun→a1→a2→a1 と、インポートが循環しているからというのはわかるのですが、pythonの文法として 循環インポートはコード書く側が注意しないといけないものなのでしょうか
これ以上ファイルを増やしたくないのですが、 __init__.py というものを使う必要があるのでしょうか。