python中函数的形参和实参

Posted

技术标签:

【中文标题】python中函数的形参和实参【英文标题】:Formal and actual parameters in a function in python 【发布时间】:2017-12-17 07:56:17 【问题描述】:

我对如何识别递归函数中的形式参数和实际参数有点困惑。例如在这段代码中获取一个数字的阶乘:

def factorial(n):
    if n == 1:
       return 1
    else:
       return n * factorial(n-1)

“阶乘(n-1)”是形式参数,因为它在函数本身内部吗?或者它是实际参数,因为它为函数分配了一个值。另外,“阶乘(n)”也是形式参数吗?

【问题讨论】:

【参考方案1】:

当一个函数被定义时,它可能有一些参数。这些参数对于从函数外部接收值很有用。它们被称为“形式论证”。当我们调用函数时,我们应该将数据或值传递给函数。这些值称为“实际参数”。 在以下代码中,“a”和“b”是形式参数,“x”和“y”是实际参数。

def sum(a, b): #a, b are formal arguments
    c = a+b 
    print(c)

#call the function 
x = 10; y = 15
sum(x, y) #x, y are actual arguments

【讨论】:

【参考方案2】:

在 Python 中,您定义了一个 function,如下所示:

你用关键字def开始function块,后跟函数名和括号()

任何输入参数或实参都应放在这些括号内。您也可以在这些括号内定义参数。

在您提供的代码中。函数factorial 采用参数 n。因此,例如,当我调用函数 factorial(1+2+3) 时,表达式 1+2+3 被解释为 6 并作为 函数参数 传入以适应 参数 n .

因此,在您调用factorial(n+1) 的函数factorial 中,您将n+1 生成的任何值传递给factorial 作为参数n

【讨论】:

【参考方案3】:

形参,即参数,在函数定义中。 函数调用中的实参,即实参。

所以n在这里:

def factorial(n):

是形式参数。

还有n - 1(或者更确切地说,它评估为的):

   return n * factorial(n-1)

是“实参”,即参数。

【讨论】:

【参考方案4】:

factorial(n) 定义中的n 是形式参数,因为它是定义函数的参数。 factorial(n-1) 调用中的 n-1 是一个实际参数,因为它是调用函数的参数。

【讨论】:

【参考方案5】:

形参是名称,您用来指代函数的实际参数(也称为实参)。在您对factorial 的定义中,n 是形式参数。在对factorial调用 中,表达式n - 1 用作递归调用内部绑定到(再次)形式参数@ 的实参987654325@.

【讨论】:

以上是关于python中函数的形参和实参的主要内容,如果未能解决你的问题,请参考以下文章

c语言中形参和实参的区别?

形参的形参和实参的关系

c语言中形参和实参的区别是啥?

形参和实参

C中数组在函数中形参和实参的区别

C语言中的函数心形参和实参分别可以为哪几种类型?函数实参可以使任意类型。。。。错在哪?