当 Python 中的一个语句中有多个函数调用时,如何在递归函数中调用函数?

How are functions called in a Recursive function when there are more than 1 function call in one statement in Python?

def fibonacci(n):

    if n == 0 or n == 1: # base c a s e s
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))

当调用 fibonacci(10) 时,fibonacci(n-1) 是先解析到基本情况,然后再解析 fibonacci(n-2) 吗?

来自the docs

Python evaluates expressions from left to right.

所以是的,fibonacci(n-2) + fibonacci(n-1) 的求值顺序如您所述:首先 fibonacci(n-2) 求值,然后 fibonacci(n-1) 求值,然后整个表达式计算结果为这两个值的总和。

在这种情况下,递归没有什么特别之处。 Python 即使操作数不是递归函数调用,也会从左到右求值。