python项目中文件夹结构的python方法

2024-09-27 21:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个模块(类文件)和一个应用程序(应用程序.py)将创建这些类的对象并将使用它。在

现在,我计划如下:

root folder 
        |
        |--classA--classA.py, __init__.py
        |--classB--classB.py, __init__.py
        |--classC--classC.py, __init__.py
        |--classD--classD.py, __init__.py
        |--requirements.txt
        |--setup.py
        |--application.py
        |--__init__.py
        |--Readme

如果这是正确的,有人能提出建议吗?我计划冻结我的文件夹结构。文件夹名(classA)、文件名之间的任何关系(A级.py)和类名(class classA:)?Python的命名方式是什么?在

非常感谢你的帮助

阿纳布


Tags: 模块文件对象py文件夹应用程序initroot
2条回答

我喜欢this blog中建议的项目结构。我用存根文件here在自己的github repo中复制了它。下面是它的样子:

cmdline_bootstrap/
├── docs
├── test
├── bootstrap
│   ├── __init__.py
│   ├── __main__.py
│   ├── bootstrap.py
│   └── stuff.py
├── bootstrap-runner.py
├── LICENSE
├── MANIFEST.in
├── README.rst
└── setup.py

这样的结构允许将文件夹bootstrap打包并作为库或命令行应用程序分发。将测试文件夹放在主模块之外可以方便地使用python setup.py test进行测试。将doc文件夹放在主模块之外,github可以轻松地在github页面上自动部署文档。在

对于您的特定项目,我可以在引导文件夹中执行以下操作:

^{pr2}$

我建议按意图组织文件夹。例如,一个文件夹包含处理对文件系统读/写的所有文件。另一个文件夹可能具有您正在使用自动化应用程序尝试的所有不同优化功能。当然,你需要更多的文件夹。在

与您的例子相反,我认为每个文件夹应该包含大约5个文件。1个文件意味着你真的不需要文件夹。10个文件意味着你的文件夹的意图可能是广泛的当前应用程序。在

编辑:

另请注意,PEP 8 recommends the following for folder naming

Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.

使用本指南class_a.py优于classA.py。对于文件夹,file_readers优先于fileReaders。在

没有Python的方法可以做到这一点。这完全取决于应用程序的语义。python最具体的一点是:与其他语言(如java)相反,没有理由为每个类使用一个模块。在

只需遵循层次结构。模块应该是执行类似操作的类的集合。文件夹应该是执行类似操作的模块的集合(更高级别)。例如:

printers.py模块可以包含InkjetPrinterLaserPrinter类。这个模块最终可以放在inputoutput文件夹中,该文件夹还包含mail.py和{}模块。在

但现在认为可以修复文件夹结构太乐观了。当你写代码时,你会发现你需要的新东西,和你不需要的旧东西。只要保持代码足够灵活,这样小的更改就不会破坏它。在

相关问题 更多 >

    热门问题