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

UserDTO -> UserDAO -> UserRecord并且所有用户对象在线性对象图中相互依赖,->相当于“依赖”。

最后在app.py里面有类似的东西

from user import UserDAO
from user import UserDTO

当应用程序尝试运行时出现错误

ImportError UserDAO

带有指向循环依赖的堆栈跟踪。除了将所有类放在同一个文件中以便模块工作之外,还有没有更好的方法在 Python 中组织类似的代码。

任何关于 python 应用程序设计的建议都是有帮助的,谢谢。

4

1 回答 1

0

我认为错误取决于user_*.py文件的编写方式:如果他们也这么说from user import UserDAO,那么它们循环依赖于代码是否__init__.py已完成执行。为了避免这种情况,他们应该from user.user_dao import UserDAO明确地说。

于 2013-08-21T10:46:46.380 回答