📌  相关文章
📜  当我们调用函数时会发生什么(1)

📅  最后修改于: 2023-12-03 15:25:36.354000             🧑  作者: Mango

当我们调用函数时会发生什么

当我们在程序中调用一个函数时,实际上是在告诉计算机执行函数体中的代码。在执行函数体之前,计算机会先将函数参数压入栈中,并为函数体分配内存空间。接下来,计算机会执行函数体中的代码,直到遇到 return 语句或者函数执行完毕。

下面是一个简单的 Python 函数示例:

def add_numbers(a, b):
    return a + b

接下来我们将调用该函数:

sum = add_numbers(3, 4)

在执行 add_numbers(3, 4) 时,计算机会将参数 34 压入栈中。然后,计算机会为函数 add_numbers 分配内存空间,并在内存中生成函数对象。接着,计算机会执行函数体中的代码,并计算出 a + b 的值,也就是 7。最后,计算机会将 7 作为返回值压入栈中,并将栈顶元素弹出赋值给 sum 变量,即 sum=7

除了栈,计算机还会为函数分配独立的命名空间,用于存储函数体中的变量。这个命名空间在函数调用结束后会被销毁,所以函数体中定义的变量只在函数内部有效。

总之,当我们调用一个函数时,计算机会为函数分配内存空间和命名空间,将参数压入栈中,并执行函数体中的代码,最后将返回值压入栈中并弹出。这个过程可以帮助我们理解函数的工作原理,并且有助于我们写出更优秀的代码。