将大型python文件拆分为具有公共依赖项的模块

2024-09-17 02:07:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在烧瓶中开发时,我想把我所有的模型,控制器,。。。在他们自己的单独文件里。这样,我就不必在一个大文件中寻找任何控制器、模型;它可以保持一切整洁。它可以如下所示:

/controllers
    __init__.py
    login.py
    logout.py
    profile.py

所有这些文件具有(几乎)相同的依赖关系。我不想把所有的依赖项一遍又一遍地放在每个文件中。我想出的一个解决方案是使用一个depencies.py文件,该文件导入所有依赖项,然后将其包含在每个单独的文件中。在

^{pr2}$

然而,这并不是一个非常优雅的解决方案。我想知道是否有可能像__init__.py那样,先把依赖关系放在最前面,然后“包括”单独的文件,并且一切都是这样运行的,这样您就不需要在每个文件中包含共同的依赖关系了。在

我想做什么的例子(不起作用):

#common dependencies
from app import mail
from flask import session
...
#actual models (which depend on these dependencies)
from user import User
from code import Code
from role import Role

Tags: 文件frompy模型import烧瓶关系init
1条回答
网友
1楼 · 发布于 2024-09-17 02:07:51

特定于文件的导入

只导入每个或您的文件中所需的依赖关系。如果profile只需要flask,则只在文件中导入它。如果login.py需要flask和{},请在该文件中导入这两者。除非在__init__.py的代码中实际使用了一个3rd方模块,否则您不需要在那里导入它。根据您最终如何使用您的包,您可以在__init__.py中设置__all__列表和模块。在

参考文献:

  1. Importing only ever loads a module once. Any imports after that simply add it to the current namespace.
    - another answer

  2. For efficiency reasons, each module is only imported once per interpreter session.
    - python docs

  3. ^{} explanation

相关问题 更多 >