如何组织Python源代码文件?

6 投票
3 回答
3834 浏览
提问于 2025-04-15 19:13

我正在开发一个Python的App Engine应用,想把一个源代码文件Models.py里的内容分成多个文件,每个文件对应一个模型,并且想把这些文件放在一个叫做Models的文件夹里。问题是,当我这么做的时候,我的应用就找不到这些类了。我该怎么办呢?

这个问题不是关于MVC的,但有一个同样标题的其他问题是

3 个回答

1

Adam Bernier 对于包是怎么运作的做了很好的技术描述。而关于如何整理和打包一个项目的精彩说明,可以在这个链接找到:http://jcalderone.livejournal.com/39794.html

4

针对你对Adam回答的评论,关于有10个类就需要10个导入,首先要记住,在Python中并不一定要每个模块都有一个类。模块应该根据功能来组织,所以如果把相关的类放在一个文件里更合理,那就这样做。

如果你还是想一次性导入所有类,可以在__init__.py文件里使用from submodule import Class的方式把它们都导入进去。然后只需要导入包含这个模块的文件,比如import mainmodule,之后就可以用mainmodule.Class1来引用,或者直接用from mainmodule import Class1, Class2, Class3把这些类直接导入到你的命名空间里,这样就可以直接使用它们了。

12

在模型目录里放一个空的 __init__.py 文件。

然后,在你的应用程序中;大概是在上一级目录,你可以这样引用模型目录里的模块:

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()

这里有个链接,指向 文档,供你参考。

撰写回答