知道如何组织项目吗?

时间:2019-05-13 08:00:07

标签: python python-3.x python-2.7

我一直在教python课程一段时间,并且我已经开始做自己的项目以利用我所学的知识进行练习。问题是在结构化方面,因为我一直在网络上编程,所以我有些迷茫。

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

我以这种方式构造它:

main.py
vs
    • mediator.py
    • commands.py
    • skills.py

in skill.py我有听,说等的联系。

在commands.py中是一个字典,其中的值是命令,键是您必须执行的,利用技能的功能。

在mediator.py中,我正在调用命令函数。

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

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

1 个答案:

答案 0 :(得分:1)

首先,我建议您看一下https://docs.python.org/3/distributing/index.html#distributing-index,了解如何打包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)

在这里,您可以在一个类中拥有所有想要的东西,现在您可以相应地填写该函数,或更改结构以适合您的情况,但这就是我认为应该成为的骨架