Python学习之路:函数传递可变参数与不可变参数
函数传参的方法:
太基础了,8说了
直接上重点
一、可变参数的传递
可变参数有:列表、集合、字典
直接上代码:
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的值被改变了
结论:
函数传递可变参数时,会将包括索引在内的整体传递进去,当函数内部对参数进行修改时,函数外部的参数也会被修改
注:
这里的修改指的是不会重新创建索引的那种修改,故赋值操作不属于这种情况
二、不可变参数的传递
不可变参数有:数字、字符串、元组
上代码:
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也不会改变,因为赋值操作会重新建立索引,相当于在函数内重新创建了同名参数
Python学习之路:函数传递可变参数与不可变参数的更多相关文章
- Python学习之路——函数
一.Python2.X内置函数表: 注:以上为pyton2.X内置函数,官方网址:https://docs.python.org/2/library/functions.html 二.Python3. ...
- Python学习之路——函数的参数分类
今日内容 '''实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合*****形参:定义函数,在括号内声明的变量名,用来接受外界传来的值''''''注:形参随着函数的调用 ...
- Python学习之路——函数对象作用域名称空间
一.函数对象 # 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 # 函数对象的应用 # 1 可以直接被引用 fn = cp_fn # 2 可以当作函数参数传 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- python学习之路------你想要的都在这里了
python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- python学习之路网络编程篇(第四篇)
python学习之路网络编程篇(第四篇) 内容待补充
随机推荐
- Numpy | 10 广播(Broadcast)
广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 下面的图片展示了数组 b 如何通过广播来与数组 a 兼容. 4x ...
- luogu P3799 妖梦拼木棒
二次联通门 : luogu P3799 妖梦拼木棒 /* luogu P3799 妖梦拼木棒 用一个桶存下所有的木棒 美剧两根短的木棒长度 后随便乘一乘就 好了.. */ #include <a ...
- javaScript之DOM,BOM
javaScript之BOM / DOM: BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ...
- Java程序设计学习知识点总结
Java程序设计学习知识点总结 Java语言简单,面向对象,分布式,解释性,健壮,安全与系统无关,可移植,高性能,多线程,动态语言. 什么是框架 可以认为是某种应用的半成品,就是一组组件用来完善自己的 ...
- java8 instant localDateTime
- Out of range value for column 'field_length'
往mysql数据库中插入数据是报错: Out of range value for column 'field_length' 字段类型是tinyint(4) 一开始以为是长度太小造成的,改成tiny ...
- c++字符串输入格式总结
最近的几次笔试中,常常遇到一些输入的问题.下面说明一下几种情况. 1. 第一种就是常见的,输入数字序列,用空格分隔开,直到回车结束.这个之前一开始遇到的时候都是利用getline直接作为字符读入一行处 ...
- supervisor更改某项目配置后 需要重新启动才有效
在linux服务器上部署了node项目,使用supervisor进行管理,supervisor是个好工具,具体介绍见这里about supervisor 梗概了该项目对的某些配置后,重新启动项目,发现 ...
- Exit 与 Goto :eof 在批处理中的区别【转】
在 CMD 命令提示符窗口直接运行: 1.) 运行 Goto :eof 后,CMD 返回并将等待下一命令. 2.) 运行 Exit 后,CMD 将直接关闭并返回到曾启动 Cmd.exe 的程序或返回到 ...
- 工具系列 | 如何在阿里云负载均衡上启用WS/WSS支持
官方文档:https://help.aliyun.com/document_detail/63421.html?spm=5176.10695662.1996646101.searchclickresu ...