1

我有一些图表,并从中生成代码。一个节点的一个条件。例如,生成的代码可能如下所示:

def function():
    steps = []

    if True:
        steps.append(1)

        if True:
            steps.append(2)

            if False:
                steps.append(3)
                return 'a', steps

            if False:
                steps.append(4)
                return 'b', steps


        if True:
            steps.append(5)

            if True:
                steps.append(6)

                if False:
                    steps.append(7)
                    return 'a', steps
            if True:
                steps.append(8)
                return 'b', steps

True我用/替换了实际条件False以使示例更清晰。

此函数返回 tuple ('b', [1, 2, 5, 6, 8]),因此采取了一些值和步骤。我想修改此代码以删除不成功的步骤。所以修改后函数应该返回('b', [1, 5, 8])

我的问题是,最好的方法是什么?

4

1 回答 1

3

做到这一点的一种方法是pop在每个失败的小组之后。

def function():
    steps = []

    if True:
        steps.append(1)

        if True:
            steps.append(2)

            if False:
                steps.append(3)
                return 'a', steps

            if False:
                steps.append(4)
                return 'b', steps

            steps.pop() #removes 2 from steps

        if True:
            steps.append(5)

            if True:
                steps.append(6)

                if False:
                    steps.append(7)
                    return 'a', steps

            steps.pop() #remove the 6

            if True:
                steps.append(8)
                return 'b', steps

        steps.pop() #remove the 5
    steps.pop() # removes the 1
于 2012-09-05T13:55:59.183 回答