Python 你知道我该如何组织我的项目吗?

Python 你知道我该如何组织我的项目吗?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我教python课程已经有一段时间了,我已经开始做我自己的项目,用我学到的知识进行实践。问题是当涉及到结构时,我有点迷茫,因为我总是在网络上编程 我的项目是关于一个虚拟助手,一个听命令并根据该命令执行操作的人 我的结构是这样的: main.py vs • mediator.py • commands.py • skills.py 在skills.py中,我有听、说等方面的联系 在commands.py中是一个字典,其中值是命令,键是必须执行的函数,使用技能 在media

我教python课程已经有一段时间了,我已经开始做我自己的项目,用我学到的知识进行实践。问题是当涉及到结构时,我有点迷茫,因为我总是在网络上编程

我的项目是关于一个虚拟助手,一个听命令并根据该命令执行操作的人

我的结构是这样的:

main.py
vs
    • mediator.py
    • commands.py
    • skills.py
在skills.py中,我有听、说等方面的联系

在commands.py中是一个字典,其中值是命令,键是必须执行的函数,使用技能

在mediator.py中,我调用了commands函数

在main.py中,我称为调解人


我没有使用对象,因为我不知道用什么方式可以实现。任何想法或意见都是好的,谢谢。

首先,我建议看一看:关于如何打包python模块

您当然可以使用一个类来减少需要维护的文件数量,并且还可以使用虚拟助手的表示形式

因此,您的类可能如下所示。在这里,我把我的地图放在了类内,但是你可以把它放在类外,也可以在类内导入和引用它

class VirtualAssistant:

    #Map of commands to skill functions
    COMMAND_MAP = {'1': self.listening_skill,
                   '2': self.speaking_skill}

    def __init__(self):
        pass

    #Function to define skills
    def listening_skill(self, params):
        pass

    def speaking_skill(self, params):
        pass

    #Other skills will be here

    #Take a command and params and execute corresponding skill
    def execute_skill(self, command, params):

        skill_to_execute = VirtualAssistant.COMMAND_MAP[command]
        skill_to_execute(params)

在这里,您可以在一个类中获得所需的所有内容,现在您可以相应地填充函数,或者更改结构以适合您的情况,但我认为这将是一个框架

我投票结束这个问题,因为它过于基于观点。这个问题的答案太笼统了,每个开发人员都有自己的风格:如何实际形成项目结构,如何命名文件,等等。你可以在这里查看,或者键入google Common python项目结构中的一些风格。当然,你可以使用@jlgf类,这也会减少你需要维护的文件数量,看看我的回答:@Tatranskymedved非常友好。@deveshkumarsing谢谢你的回答,朋友。