一、可变参数的传递
可变参数有:列表、集合、字典
直接上代码:
a = [1, 2] def fun(a): print('传入函数时a的值为:', a) a.insert(2, 3) #修改a print('函数改动后a的值为:', a) fun(a) #调用函数 print('调用函数后全局中a的值为:', a) 结果为: 传入函数时a的值为: [1, 2] 函数改动后a的值为: [1, 2, 3] 调用函数后全局中a的值为: [1, 2, 3] #可以看到函数外部a的值被改变了
结论:
函数传递可变参数时,会将包括索引在内的整体传递进去,当函数内部对参数进行修改时,函数外部的参数也会被修改。
(更多学习内容,请点击python学习网)
二、不可变参数的传递
不可变参数有:数字、字符串、元组
代码:
a = 1 def fun(a): print('传入函数时a的值为:', a) a = 2 #这里是通过重新赋值的方法修改,只是为了举例,毕竟不可变参数没有真正的修改方法 print('函数改动后a的值为:', a) fun(a) #调用函数 print('调用函数后全局中a的值为:', a) 结果为: 传入函数时a的值为: 1 函数改动后a的值为: 2 调用函数后全局中a的值为: 1 #可以看到函数外部a的值并没有改变
结论:
函数传递不可变参数时,只传递了值,当函数内部对参数进行修改时,其实只是重新创建了一个同名参数,函数对这个同名参数的操作并不会影响到函数外部的参数
注:
这里为了举例使用的是重新赋值的方法,其实在这种情况下即使a是可变参数,全局中的a也不会改变,因为赋值操作会重新建立索引,相当于在函数内重新创建了同名参数。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!