如何组织Python源代码文件?
我正在开发一个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()
这里有个链接,指向 文档,供你参考。