站长在线Python精讲:在Python函数中理解形式参数和实际参数

站长在线Python精讲:在Python函数中理解形式参数和实际参数,第1张

站长在线Python精讲:在Python函数中理解形式参数和实际参数

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python函数中理解形式参数和实际参数》。本文的主要内容有:Python中形式参数的概念和特点,Python中实际参数的概念和特点,实际参数的值传递和引用传递。

目录

1、Python中形式参数的概念和特点

2、Python中实际参数的概念和特点

3、实际参数的值传递和引用传递。


我们在上一节课中,讲到了函数的调用。在Python中调用函数时,大多数情况下,主调函数和被调用函数之间有数据传递关系,这就是有参数的函数形式。函数参数的作用是传递数据给函数使用,函数利用接收的数据进行具体的 *** 作处理。函数参数在定义函数时放在函数名称后面的一对小括号中:

def a (x):

其中,a是函数名,x是函数参数。

我们先来了解形式参数和实际参数

在使用函数时,经常会用到形式参数和实际参数。两者都叫作参数。

1、Python中形式参数的概念和特点

概念:在定义函数时,函数名后面括号中的参数为“形式参数”。

特点:形式参数就是变量名。

如:def  a(x)   其中x就是形式参数。

2、Python中实际参数的概念和特点

概念:在调用一个函数时,函数名后面括号中的参数为“实际参数”。也就是将函数的调用者提供给函数的参数称为实际参数。

特点:实际参数就是变量值。

如:def  a('python')  其中,python就是实际参数。

3、实际参数的值传递和引用传递。

根据实际参数的类型不同,可以分为:

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不迷路!欢迎你对站长在线进行关注,评论,点赞,分享、转发!

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5679921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存