欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中理解形式参数和实际参数》。本文的主要内容有:Python中形式参数的概念和特点,Python中实际参数的概念和特点,实际参数的值传递和引用传递。
目录
1、Python中形式参数的概念和特点
2、Python中实际参数的概念和特点
3、实际参数的值传递和引用传递。
我们在上一节课中,讲到了函数的调用。在Python中调用函数时,大多数情况下,主调函数和被调用函数之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的操作处理。函数参数在定义函数时放在函数名称后面的一对小括号中:
def a (x):
其中,a是函数名,x是函数参数。
我们先来了解形式参数和实际参数
在使用函数时,经常会用到形式参数和实际参数。两者都叫作参数。
概念:在定义函数时,函数名后面括号中的参数为“形式参数”。
特点:形式参数就是变量名。
如:def a(x) 其中x就是形式参数。
概念:在调用一个函数时,函数名后面括号中的参数为“实际参数”。也就是将函数的调用者提供给函数的参数称为实际参数。
特点:实际参数就是变量值。
如:def a('python') 其中,python就是实际参数。
根据实际参数的类型不同,可以分为:
3.1、将实际参数的值传递给形式参数。
3.2、将实际参数的引用传递给形式参数。
其中:
当实际参数为不可变对象时,进行的是值传递;
当实际参数为可变对象时,进行的是引用传递。
实际上,值传递和引用传递的基本区别就是:
进行值传递后,改变形式参数的值,实际参数的值不变;
进行引用传递后,改变形式参数的值,实际参数的值也一同改变。
例如,定义一个名称为demo的函数,然后为demo()函数传递一个字符串类型的变量作为参数(代表值传递),并在函数调用前后分别输出该字符串变量,再为demo()函数传递一下列表类型的变量作为参数(代表引用传递),并在函数调用前后分别输出该列表。代码如下:
#定义函数 def demo(obj): print("原值:",obj) obj += obj #调用函数 print("=========值传递========") mot="人生苦短,我用Pyhon。" print("函数调用前:",mot) demo(mot) #采用不可变对象--字符串 print("函数调用后: ",mot) print("=========引用传递========") #采用 可变对象--列表 list1 =["优雅","明确","简单"] print("函数调用前: ",list1) demo(list1) print("函数调用后: ",list1)
运行代码如下:
=========值传递======== 函数调用前: 人生苦短,我用Pyhon。 原值: 人生苦短,我用Pyhon。 函数调用后: 人生苦短,我用Pyhon。 =========引用传递======== 函数调用前: ['优雅', '明确', '简单'] 原值: ['优雅', '明确', '简单'] 函数调用后: ['优雅', '明确', '简单', '优雅', '明确', '简单'] >>>
从上面的执行结果中可以看出,在进行值传递时,改变形式参数的值后,实际参数的值不改变;在进行引用传递时,改变形式参数的值后,实际参数的值也发生改变。
函数定义时参数列表中的参数就是形式参数,而函数调用时传递进来的参数就是实际参数。
就像剧本选主角一样,剧本的角色相当于形式参数,而演角色的演员就相当于实际参数。
到此为止,本文《在Python函数中理解形式参数和实际参数》主要讲到的Python中形式参数的概念和特点,Python中实际参数的概念和特点,实际参数的值传递和引用传递。
在下一个知识点,站长在线就来讲解《在Python函数中理解参数传递的位置参数》。关注站长在线,学习Python不迷路!欢迎你对站长在线进行关注,评论,点赞,分享、转发!