私は Python アプリケーションをさまざまな構造に整理することを検討していますが、循環依存関係のように見えるため、私にとって最も自然と思われる構造が機能しません。組織の目標は、クラスを独自のファイルに移動し、モジュールを独自の で制御できるようにすること__init__.py
です。
とにかくコードに。この構造のアプリがあります
/app
|__ user
| |__ __init__.py
| |__ user_dao
| |__ user_dto
| |__ user_record
|
|_app.py
その後、/app/user/__init__.py
このようなものになります。
from user_dao import UserDAO
from user_dto import UserDTO
from user_record import UserRecord
and the all the user objects depend on each other in liniar object graph UserDTO -> UserDAO -> UserRecord
where ->
is equivalent to "depends on".
And finally in app.py
there is something similar to
from user import UserDAO
from user import UserDTO
When the app tries to run I get the error
ImportError UserDAO
with a stack trace that points to a circular dependency. Is there a better way to organize similar code in Python besides putting all classes in the same file so the modules work.
Any suggestions about application design in python are helpful, and thank you.