我是Python的新手(我来自JAVA背景),我想知道是否有人可以帮助我使用一些Python标准.将多个类放入模块中是正常的还是"正确"的做法?我一直在使用Django并从教程开始,他们将数据库模型类放在同一个模块中.这是通常完成的事情,还是我应该坚持每个模块1个课程?有理由我会做一个而不是另一个吗?
希望我很清楚,而不是通用.感谢大家提前!
mos*_*hez 32
从我所看到的典型Java项目中,这是一个有用的经验法则:
Java中最底层的包应该是Python中的文件
那是什么意思?如果您的Java项目是有条理的:
toplevel/
subproject/
Foo.java
Bar.java
subproject2/
Baz.java
Qux.java
Run Code Online (Sandbox Code Playgroud)
然后你的Python项目应该如下所示:
toplevel/
subproject.py <-- put class Foo, Bar here
subproject2.py <-- put class Baz, Qux here
Run Code Online (Sandbox Code Playgroud)
要注意的事情:组织:
这样想吧.
在java中你写的是一个类,在Python的情况下,你编写一个模块而不是一个类.所以一个模块可以包含几个类.每当您想要使用特定类时,首先导入相应的模块,然后调用该类来创建对象.
这是一个例子.
Classes.py(这是一个名为'Classes'的模块)
class MyClass(object):
def greet(self):
print("Hello World")
class MyNextClass(object):
def greetAgain(self):
print("Hello again")
Run Code Online (Sandbox Code Playgroud)
现在我可以从任何我想要的地方导入这个模块
import Classes
if __name__ == '__main__':
a=Classes.MyClass()
a.greet()
b=Classes.MyNextClass()
b.greetAgain()
Run Code Online (Sandbox Code Playgroud)
这样做是绝对正确的.模块分组相关功能.如果该功能在多个类(例如,Tree,Node,Leaf)中实现,则将它们放在一起是合适的.
模块与Java包关联得比Java类更紧密.您还可以将模块实现为以模块命名的文件夹,其中包含一个__init__.py文件(因此Python可以识别模块; __init__.py也可以选择包括初始化代码以及要导出的类,函数和子包的列表. )
| 归档时间: |
|
| 查看次数: |
27486 次 |
| 最近记录: |