函数传参的方法:

  太基础了,8说了

  直接上重点

一、可变参数的传递

  可变参数有:列表、集合、字典

直接上代码:

a = [1, 2]def fun(a):print('传入函数时a的值为:', a)a.insert(2, 3)                                    #修改aprint('函数改动后a的值为:', a)fun(a)                                                #调用函数
print('调用函数后全局中a的值为:', a)结果为:传入函数时a的值为: [1, 2]
函数改动后a的值为: [1, 2, 3]
调用函数后全局中a的值为: [1, 2, 3]                       #可以看到函数外部a的值被改变了

结论:

  函数传递可变参数时,会将包括索引在内的整体传递进去,当函数内部对参数进行修改时,函数外部的参数也会被修改

注:

  这里的修改指的是不会重新创建索引的那种修改,故赋值操作不属于这种情况

二、不可变参数的传递

  不可变参数有:数字、字符串、元组

上代码:

a = 1def fun(a):print('传入函数时a的值为:', a)a = 2                                             #这里是通过重新赋值的方法修改,只是为了举例,毕竟不可变参数没有真正的修改方法print('函数改动后a的值为:', a)fun(a)                                                #调用函数
print('调用函数后全局中a的值为:', a)结果为:传入函数时a的值为: 1
函数改动后a的值为: 2
调用函数后全局中a的值为: 1                               #可以看到函数外部a的值并没有改变

结论:

  函数传递不可变参数时,只传递了值,当函数内部对参数进行修改时,其实只是重新创建了一个同名参数,函数对这个同名参数的操作并不会影响到函数外部的参数

注:

  这里为了举例使用的是重新赋值的方法,其实在这种情况下即使a是可变参数,全局中的a也不会改变,因为赋值操作会重新建立索引,相当于在函数内重新创建了同名参数

转载于:https://www.cnblogs.com/toxic-antidote/p/11468363.html

Python学习之路:函数传递可变参数与不可变参数相关推荐

  1. python学习之路---函数:定义def、调用、返回值return、参数说明、参数陷阱

    #函数 #可读性强,复用性强 #函数定义:定义了之后,可以在任何需要的地方调用 #格式: def 函数名(): 例子:def mylen(): # 没有返回长度,只能单纯的打印 # return 返回 ...

  2. Python学习之路--函数

    初识函数 可读性,复用性强 定义之后,可以在任何需要它的地方调用 所有函数 只定义不调用不会执行 先定义后调用 def  函数名(): # 函数体 return 返回值 函数调用 函数名()不接收返回 ...

  3. Python学习之路9☞面向对象的程序设计

    Python学习之路9☞面向对象的程序设计 一 面向对象的程序设计的由来 见概述:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二 什 ...

  4. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  5. Python学习之路—2018/7/14

    Python学习之路-2018/7/12 3.功能开发 3.3 设计博客首页 博客首页中最重要的就是中间的文章区域,所以我首先把文章区域设计出来,一开始并没有数据,如果用orm添加或者直接在数据库添加 ...

  6. Python学习之路5☞文件处理

    Python学习之路5☞文件处理 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 1 正趣果上果 2 Interesting fruit fruit 3 4 ...

  7. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  8. 我的Python学习之路(一)_Mr_Ouyang

    我的Python学习之路(一)_Mr_Ouyang 笔者按: 本文从18:55开始写作,至19:38中断,又从21:12始继续,至23:22写就. 共计耗时113分钟,总字数9081字,约80.4字/ ...

  9. python学习之路:python连接阿里云ODPS

    python学习之路:python连接阿里云ODPS 前言 本人最近在学习使用ODPS,希望把学习过程记录下来,方便自己查阅. 1.安装ODPS pip install ODPS 2.连接阿里云odp ...

  10. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

最新文章

  1. python和linux哪个难学-请不要重复犯我在学习Python和Linux系统上的错误
  2. 北大igem生物计算机,正在报名 | 2019国际基因工程机器大赛(iGEM)
  3. Java8函数式编程(3)--规约操作
  4. 【最佳实践】【Blend】Triggers、Actions 和 Behaviors
  5. HTTP和RPC的区别?
  6. NumPy 算术函数
  7. Spring源码全解
  8. 设计模式之单例模式:7种单例设计模式(Java实现)
  9. 映射网络驱动器失败的解决办法
  10. 手机号验证最新正则表达式
  11. Trump International Hotel Washington, D.C.宣布跻身猫途鹰“旅行者之选”美国获奖酒店四强之列
  12. linux simg2img,simg2img工具
  13. class0:计算机的潜意识——机器学习
  14. Luogu 3174 [HAOI2009]毛毛虫
  15. AAAI 2020 | 清华大学:借助BabelNet构建多语言义原知识库
  16. 0x0f的java写法_0x0f(0x0f转化十进制)
  17. 飞桨博士会第十一期回顾:人工智能与生命科学的硬核碰撞
  18. Chemoffice 2018安装教程
  19. GCC种builtin函数的介绍以及实现过程(1)
  20. mysql获取年月日周季度

热门文章

  1. 【刷题】BZOJ 2069 [POI2004]ZAW
  2. 身份证合法性校验规则
  3. 第 1-6 课:Spring 的另一个核心机制 AOP
  4. 新手小白怎样玩转短视频抖音吸粉公众号小说项目
  5. excel组合汇总_Excel汇总20140602
  6. 外键字段未建索引引发的死锁
  7. CVE-2019-16097:Harbor任意管理员注册漏洞复现
  8. 随手记_英语_学术写作_常用近义词区分
  9. flutter 九宫格菜单_flutter九宫格图片查看器
  10. MySQL-实操:部门、员工信息与管理