python中函数中的形式和实际参数

Cza*_*Luc 1 python iteration recursion branch function

我对如何识别递归函数中的形式和实际参数感到困惑.例如,在这段代码中获取数字的阶乘:

def factorial(n):
    if n == 1:
       return 1
    else:
       return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)

"factorial(n-1)"是形式参数,因为它在函数内部吗?或者它是实际参数,因为它为函数分配了一个值.另外,"factorial(n)"也是形式参数吗?

jua*_*aga 7

形式参数,即参数,在函数定义中.实际参数,即参数,在函数调用中.

所以n这里:

def factorial(n):
Run Code Online (Sandbox Code Playgroud)

是一个正式的参数.

并且n - 1(或者更确切地说,它评估)在这里:

   return n * factorial(n-1)
Run Code Online (Sandbox Code Playgroud)

是一个"实际参数",即一个参数.