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

以编程方式理解python代码而不执行它,python,conceptual,Python,Conceptual,我正在实现一个工作流管理系统,其中工作流开发人员重载了一点流程功能,并从工作流类继承。该类提供了一个名为add\u component的方法,以便将组件添加到工作流中(组件是软件的执行,或者可能更复杂) MyWorkflow类要显示状态,需要知道哪些组件已添加到工作流中。为此,我尝试了两种方法: 执行流程功能2次,第一次允许收集所需的所有组件,第二次用于实际执行。问题是,如果工作流开发人员除了添加组件(在数据库中添加元素、创建文件)之外还执行其他操作,那么这将执行两次 解析函数的python代码

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

My
Workflow
类要显示状态,需要知道哪些组件已添加到工作流中。为此,我尝试了两种方法:

  • 执行流程功能2次,第一次允许收集所需的所有组件,第二次用于实际执行。问题是,如果工作流开发人员除了添加组件(在数据库中添加元素、创建文件)之外还执行其他操作,那么这将执行两次
  • 解析函数的python代码以仅提取
    add_组件
    行,这是可行的,但如果某些组件位于
    if
    /
    else
    语句中,并且不应执行该组件,则该组件将显示在监视中
    我想知道是否还有其他解决方案(我想让我的工作流程成为一个XML或一些更容易解析的东西,但这不太灵活)。

    如果不“执行”程序,你就无法知道程序会做什么(可能是在某些情况下,你模拟一些你不想修改的东西,但它看起来像是在射击一个移动的目标)

    如果你做手工解析,总会有一些问题你错过了

    您应该将代码分解为两个函数:

    • 第一个代码只能添加_组件,而没有任何边 效果,但有可能运行真正的代码来检查 环境等,以了解要添加的组件
    • 第二个 可能有副作用,并依赖于添加的成分
    使用XML(或任何静态格式)与此类似,除了:

    • 您确信没有副作用(不需要依赖程序员遵守文档)
    • 灵活性要小得多,但请确保您需要它

    我想这可能会引起您的兴趣: