Python项目结构

时间:2018-08-29 11:04:06

标签: python python-3.x

我已经开始一个Python项目。它不是Web应用程序或GUI应用程序,而只是一个简单的命令行工具。我通常使用相同的项目结构,即:

tspviz
│   .gitignore
│   requirements.txt
│   setup.py
│
├───data
│       prices.txt
│       shops.txt
│
├───tests
└───tspviz
    │   tspviz.py
    │   __init__.py
    │
    ├───algorithm
    │   │   genetic.py
    │   │   params.py
    │   │   __init__.py
    │   │
    │   └───__pycache__
    │           genetic.cpython-37.pyc
    │           params.cpython-37.pyc
    │           __init__.cpython-37.pyc

这是不言而喻的,主要文件是tspviz.py目录中的tspviz。现在,这是一个可以解决旅行商问题的程序,因此我需要制作一些类,例如CityPath等。然后问题是:我该放在哪里?我将在tspviz目录中创建一个单独的目录(而不是根目录)。然后,好了,如何命名这个文件夹而又不引起同事的困扰?我不知道“类”,“类型”,“杂项”吗?所以我的问题是:我是否应该将它们全部放在tspviz内的目录中,因为它们可能仅从那里开始使用,其次:是否有一种标准化的方式来命名这样的文件夹? (使用类,您可以在各处使用)

1 个答案:

答案 0 :(得分:1)

给定类名(<p:selectOneMenu value="#{user.shipper}" effect="fold" required="true" id="selectone" autocomplete="off" requiredMessage="#{error['form.shippershortcode']}" widgetVar="selectWV" > <f:selectItem itemLabel="----" itemDisabled="true" /> <f:selectItems value="#{shipperdropdown.shipperlist}" /> <p:ajax update="company" process="@this" /> </p:selectOneMenu> City等),看来您的类属于问题域,因此Path模块可能有意义。请注意,您在这里不一定需要一个文件夹,Python不是Java,也不会强迫您进入“每个类一个文件”的废话-仅在具有 other 时使用文件夹(包) em>将模块拆分为子模块的原因。

关于“放置位置”(在模块或程序包中),显然与其他模块和程序包处于同一级别(在tspviz / tspviz子文件夹中,以及tspviz.py和算法程序包)。

  

是否有标准化的方式来命名这样的文件夹?

不。

  

(带有类,您可以在各处使用)

Python的类都是对象,就像函数和其他所有东西一样,因此在模块/包中定义的(或没有)类是完全不相关的,对于函数等也是如此。