这似乎是一个愚蠢的问题,但我认为这个问题可能有一个简单的解决方案。我有一个python脚本,它执行一些基于命令行的数学计算。我不想对我现在拥有的代码进行任何重大修改。我现在的方法是创建一个GUI(我使用wxpython),它使用该脚本作为模型,同时让模型作为独立的python脚本运行,就像现在一样。我知道这是继承和多态的问题,但我不清楚我应采取的方法。任何指南将不胜感激。
答案 0 :(得分:1)
这取决于命令行工具的质量。基本上如果它是“正确”编写的,它会将其功能封装在某些可在其他脚本中重用的函数或类中 - 这意味着您可以毫无问题地导入和使用它们。然后命令行工具的“main”部分解析命令行参数并调用这些函数/类。 这一切都是真的,显然,您可以在基于GUI的应用程序中导入您的功能并使用它。
因此,简而言之,您的功能必须与用户界面分离,然后切换界面或多或少是微不足道的。这通常称为分隔front end and back end。
答案 1 :(得分:1)
假设你的命令行可执行文件是:
%compute -flag1 -flag2 datafile outputfile
在WxPython中,您可以使用复选框来选择是否使用flag1和/或flag2,数据文件的文件选择器窗口小部件,输出文件的文本输入字段和“执行”按钮。单击execute时,在字符串中创建命令行并将其传递给子流程模块中的一个方法。