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中函数的形参和实参的主要内容,如果未能解决你的问题,请参考以下文章