【问题标题】:Python project architecturePython项目架构
【发布时间】:2011-03-11 03:06:18
【问题描述】:

我是一名刚接触 python 的 Java 开发人员。在java中,您可以访问同一目录中的所有类,而无需导入它们。

我正在尝试在 python 中实现相同的行为。这可能吗?

我尝试了各种解决方案,例如将所有内容导入到我在任何地方都导入的文件中。这行得通,但每次我想访问外国课程时,我都必须输入myClass = rootFolder.folder2.folder3.MyClass()

您能否向我展示一个示例,说明在多个目录上的 python 架构如何工作?你真的必须在每个文件中导入你需要的所有类吗?

假设我正在编写一个 Web 框架。框架的用户是否必须在文件中导入他们需要的所有内容?

【问题讨论】:

  • 来自python之禅:“显式胜于隐式”
  • 除了 Stargazer 的回答,别忘了 Python 允许你在同一个文件中有多个不相关的类。因此,您无需像在 Java 中那样进行大量拆分。

标签: python architecture


【解决方案1】:

将所有内容放入一个文件夹(名称无关紧要),并确保该文件夹有一个名为 __init__.py 的文件(该文件可以为空)。

然后您可以在代码顶部添加以下行:

from myfolder import *

这应该使您可以访问该文件夹中定义的所有内容,而无需每次都提供前缀。

你也可以像这样拥有多个深度的文件夹:

from folder1.folder2 import *

如果这就是您要找的,请告诉我。

【讨论】:

  • 我只是看了看 Django,他们会在需要时导入所需的内容。猜猜这可能是 的方法。
  • -1:使用from ... import * 是可怕的风格,要么明确指定要导入的内容,例如from test import test1, test2。或者最好不要使用from,并且可以选择缩短名称,例如import test.inner_test as it
  • 我同意这不是很好的风格,但这不是他要问的。
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 2017-09-09
  • 2019-06-21
  • 2010-12-22
  • 2015-10-23
  • 1970-01-01
  • 2011-02-09
  • 2010-10-01
相关资源
最近更新 更多