ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实参与形参究竟有什么不同

2021-10-23 21:32:38  阅读:184  来源: 互联网

标签:return 函数 形参 参与 概念 add 实参 究竟


你所熟知的各种编程语言,都有形参与实参这个概念,虽然不同语言对于形参和实参的要求是不同的,但他们存在的形式与意义却是一致的。

对于许多初学者来说,形参与实参,着实难以区分和理解,这不怪你,因为计算机里的很多概念,的确是难以理解。我们对于日常生活中许多事物的理解,已经让我们养成了思维上的习惯与定式,而这种定式放在计算机编程上,往往是失效的。原因在于,计算机里的许多概念,都是没有实体的。

比如说,内存,你不能指着某样东西说“看,这是内存”, 充其量,你拆开电脑,指着一块硬件说“看,这是内存条”,然尔内存与内存条是两个完全不同的事物。所以,我们要放弃自然科学中那种对事物进行精确定义和描述的习惯。

看下面这段代码

def add(x, y):
    return x + y

x, y ,就是函数add的形参,形参这个概念,侧重于函数的定义,这段代码里,没有实参,因为实参侧重于函数的调用,看下面这段代码

def add(x, y):
    return x + y
​
add(3, 4)

3 和 4 就是调用函数add时传入的实参,这句话强调了调用函数和传入两个动作,只有当这两个动作发生时,才有实参的概念,或者说,实参的概念才有意义。

那么,return x + y 这行代码里,x 与 y 是实参,还是形参呢? 我个人的见解是,在函数里再去辨别他们已经没什么意义,如果一定需要一个答案,那么,我认为它们是形参,而不是实参。实参,是一个只在函数调用时存在的概念,具体到函数内部执行时,我们已经不关心实参这个事情了。

如果你对变量作用域理解的不深刻,那么下面这段代码很容易让你困惑

x = 3
y = 4
​
def add(x, y):
    return x + y
​
add(x, y)

现在再来看,return x + y 这行代码里,x y 到底是实参还是形参?答案是形参。实参,不是一个具体的事物,它是一个概念,这个概念只在调用函数传入参数时才有意义。

为什么要有形参和实参这两个概念呢?形参,规定了函数的样式,是一种形式的约定,强类型语言还会约定一个形参的类型。实参,是实际调用时传入函数的数据,因此叫实参。

实参与形参,是两个维度的事物,一个强调形式,一个强调实际数值,因此我说,他们是两个维度的事物,形参是静态的概念,实参是动态的概念,我执行add(3, 5), 函数的实参就是3, 5。下一次执行add(7, 8),那么函数的实参就是7和8,但形参始终都是x和y。

在函数内,形参的值,是由实参决定的,在函数执行之前,你不知道x 和 y 的值是什么,只有函数实际被执行,被调用,在函数内,你才知道形参的实际数值是什么。

标签:return,函数,形参,参与,概念,add,实参,究竟
来源: https://www.cnblogs.com/WenLJ-Blog/p/15449556.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有