以编程方式理解python代码而不执行它

时间:2013-11-26 16:00:10

标签: python conceptual

我正在实现一个工作流管理系统,其中工作流开发人员重载一个小的流程函数并从Workflow类继承。该类提供了一个名为add_component的方法,以便将一个组件添加到工作流中(一个组件是一个软件的执行,或者可能更复杂)。

我的Workflow课程要显示状态,需要知道哪些组件已添加到工作流程中。为此,我尝试了两件事:

  1. 执行过程功能2次,第一次允许收集所需的所有组件,第二次用于实际执行。问题是,如果工作流程开发人员做的事情不是添加组件(在数据库中添加元素,创建文件),那么这将完成两次!
  2. 解析函数的python代码以仅提取add_component行,这可行,但如果某些组件位于if / else语句中且组件不应执行,该组件在监控中出现了!
  3. 我想知道是否还有其他解决方案(我考虑过让我的工作流程成为XML或者更容易解析的东西,但这不太灵活)。

1 个答案:

答案 0 :(得分:0)

你不知道一个程序在没有“执行”它的情况下会做什么(可能在某些情况下,你嘲笑你不想修改的东西,但它看起来像是在移动目标上射击)。

如果你进行手工解析,你总会遇到一些问题。

你应该用两个函数来破解代码:

  • 第一个代码只能add_component(s)而没有任何一方 效果,但有可能运行实际代码来检查 环境等,以了解要添加的组件。
  • 第二个 可能有副作用,并依赖于添加的组件。

使用XML(或任何静态格式)类似,除了:

  • 您确定没有副作用(不需要依赖程序员尊重文档)
  • 很少灵活性较差但确保你需要它。