如何组织Python源代码文件?

时间:2010-02-13 01:23:14

标签: python google-app-engine code-formatting project-structure code-structure

我正在开发一个Python App Engine应用程序,我希望将源代码文件Models.py的内容拆分为每个模型的单独文件,但我想将它全部放在名为Models的文件夹中。问题是,当我这样做时,我的应用程序无法再找到这些类。我该怎么办?

这个问题不是关于MVC but another question with the same title is

3 个答案:

答案 0 :(得分:12)

将一个空的__init__.py文件放在Models目录中。

然后,在你的应用中;大概是一级,你可以在Models目录中引用模块,如下所示:

import Models

并像这样做一些事情:

Models.my_model.MyClassName

您还可以使用from关键字,如下所示:

from Models import my_model

并像这样引用:

my_model.MyClassName

如果您只需要模块中的一种方法,您也可以这样做:

from Models.my_model import my_method_name
my_method_name()

documentation的强制性链接。

答案 1 :(得分:4)

回应你对Adam回答的评论,关于10个类的10个导入,首先不要忘记在Python中每个模块不需要一个类。模块应按功能组织,因此如果有意义,您可以将相关类分组到一个文件中。

如果您仍想一次性导入所有类,可以使用__init__.py语法将它们全部导入from submodule import Class文件中,然后只导入包含模块 - {{1并引用import mainmodule等,甚至使用mainmodule.Class1将类直接导入到命名空间中并直接引用它们。

答案 2 :(得分:1)

Adam Bernier提供了关于包如何工作的良好技术描述。 http://jcalderone.livejournal.com/39794.html

中描述了如何安排和发布项目的详细说明