1

私は 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.

4

1 に答える 1