Python:如何组织Python项目的建议。一些问题 首先,谢谢,我知道堆栈溢出充满了这个论点(但是我们可以考虑一个复习问题)。我对组织一个Python项目有一些疑问
从中我找到了这个很好的模式Python:如何组织Python项目的建议。一些问题 首先,谢谢,我知道堆栈溢出充满了这个论点(但是我们可以考虑一个复习问题)。我对组织一个Python项目有一些疑问,python,coding-style,Python,Coding Style,从中我找到了这个很好的模式 /myproject /__init__.py # This makes it a Python package and importable. /evaluate.py # Contains the code to actually do calculations. /main.py # Starts the application /ui.py # Contains the code to make a pretty interface
/myproject
/__init__.py # This makes it a Python package and importable.
/evaluate.py # Contains the code to actually do calculations.
/main.py # Starts the application
/ui.py # Contains the code to make a pretty interface
从这个\uuuu init\uuuu.py
通常是空的
我的问题是:
main.py
(或evaluate.py
)什么evaluate.py(或
py)包含什么utilities.py
和/或module.py
。utilities.py/module.py包含哪些实用程序main.py
:始终执行有关从外部环境初始化变量并加载配置文件的简单操作。并包装实际的逻辑事物。例如:
from evaluate import actual_things
def run():
...
actual_things()
...
if __name__ == '__main__':
init()
load_from_config()
run()
问:有时我会发现utilities.py和/或module.py。utilities.py/module.py包含哪些实用程序?
答:utilities.py
:或utils.py
通常是助手。如编解码、加密等
问:如果foo位于main.py(或evaluate.py)中,evaluate.py(或main.py)包含什么?
答:你必须指出foo做什么,根据foo的功能,我们将foo定位到某个地方。如果foo是一个业务函数,那么foo应该位于evaluate.py中
问:假设您有一个函数(def foo)。foo位于evaluate.py或main.py中?
A:见上文
最后,我认为最好的了解方法是全面了解一个项目。你会知道QA帮不了什么忙。我喜欢相信形式源于功能。您的项目所做的将决定如何组织它。您的示例有两个组件,一个ui和一个计算,因此有两个py文件用于这些组件,其余的是粘合在一起的。至于你的foo去了哪里,它是一个计算foo还是一个ui foo。最后,到处使用的helper函数通常在common.py或utilities.py中。我不认为这个例子是字面意义上的。它用来说明,创建模块并不是为了保存单个类或其他东西,而是为了包含逻辑组。对不起,yes calculation->evaluateTo展开delnans注释,如果它计算内容,请evaluate.py。如果它与向用户显示内容相关,则为ui.py。如果它与启动一切或清理相关,main.py.通常在
main
中解析命令行参数、读取环境、解析配置文件、打开输入文件、连接到服务器等,然后将工作交给实际的处理模块。