我一直在教python课程一段时间,并且我已经开始做自己的项目以利用我所学的知识进行练习。问题是在结构化方面,因为我一直在网络上编程,所以我有些迷茫。
我的项目是关于一个虚拟助手的,那个虚拟助手会监听并根据该命令执行操作。
我以这种方式构造它:
main.py
vs
• mediator.py
• commands.py
• skills.py
in skill.py我有听,说等的联系。
在commands.py中是一个字典,其中的值是命令,键是您必须执行的,利用技能的功能。
在mediator.py中,我正在调用命令函数。
在main.py中,我称为调解人。
我没有使用对象,因为我不知道我可以用什么方式实现。任何想法或意见都很好,谢谢。
答案 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)
在这里,您可以在一个类中拥有所有想要的东西,现在您可以相应地填写该函数,或更改结构以适合您的情况,但这就是我认为应该成为的骨架