Python:代码执行时会发生什么,逻辑是什么?

时间:2016-06-15 16:39:35

标签: python function

我是Python的初学者,我真的需要帮助了解这段代码的工作原理。我需要写下这个程序的作用 - 打印的内容以及变量的值如何随程序的变化而变化。 我知道需要调用函数,我知道循环是如何工作的,但是让我感到困惑的是最后一行。如果它只是打印(funk2(a,a)),程序将打印5,5,if,return和5.但如果它是一个参数会发生什么?

    def funk2(x, y):
        print(x)
        print(y)
        while x > 1:
            if y == 2 or not x > y:
                x -= 4
                print("if")
            elif y != 4:
                print("return")
                return y
            else:
                print("else")
                x += 2
        print("return")
        return 5
    a = 5
    print(funk2(a + 1, funk2(a, a)))

1 个答案:

答案 0 :(得分:1)

让我们分解最后一行:

funk2(a + 1, funk2(a, a))

它首先会评估funk2(a, a),而x又会返回一个值(假设它对应于a+1)。 然后它会评估a = 5 6funk2

然后,最后它会调用函数funk2(6, x)

b = a + 1
c = funk2(a, a)
print(funk2(b, c))

就是这样!

你也可以像这样写下最后一行:

Orchard.ContentManagement.DefaultContentManager