一、函数的参数传递本质上就是∶从实参到形参的赋值操作。Python中“一切皆对象”,所有的赋值操作都是‘引用的赋值”。所以,Python中参数的传递都是“引用传递”,不是“值传递”。具体操作时分为两类︰

1.对“可变对象”进行“写操作”,直接作用于原对象本身。

2.对“不可变对象”进行“写操作”,会产生一个新的“对象空间”,并用新的值填充这块空间。

(起到其他语言的“值传递”效果,但不是“值传递”)

可变对象有:字典、列表、集合、自定义的对象等

不可变对象有:数字、字符串、元组、function等

二、传递参数是可变对象(例如∶列表、字典、自定义的其他可变对象等),实际传递的还是对象的引用。在函教体中不创建新的对象拷贝,而是可以直接修改所传递的对象。

三、传递参数是不可变对象(例: int、 float、字符串、元组、布尔值),实际传递的还是对象的引用。在”赋值操作”时,由于不可变对象无法修改,系统会新创建一个对象。

通过id值我们可以看到n和a一开始是同一个对象,给n赋值后,n是新的对象。

python中参数的传递相关推荐

  1. python中的值传递和引用传递

    今天和大家分享python中很重要的一个知识点:参数传递,其中包括值传递和引用传递. 目录 一.为什么要熟悉值传递和引用传递 1.1 值传递 1.2 引用传递 二.Python变量及其赋值 三.Pyt ...

  2. python中参数是什么_python中parameter是什么

    parameter:形参,指的是函数中的参数名称:def add(x,y):>>>>>>>>>>>>>此处x,y为形参. ...

  3. python函数参数引用传递

    python函数参数引用传递 Python中函数参数是引用传递(注意不是值传递) 对于不可变类型,因变量不能修改,所以运算不会影响到变量自身 而对于可变类型来说,函数体中的运算有可能会更改传入的参数变 ...

  4. python 中参数*args, **kwargs

    python 中参数*args, **kwargs def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs ...

  5. python中参数(带星号的参数)

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  6. python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  7. python中参数前面加星号是什么意思_详解Python函数中参数带星号是什么意思

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

  8. 讲讲Python中的函数传递问题 【文末送书】

    正式的Python专栏第25篇,同学站住,别错过这个从0开始的文章! 前篇讲了python中的函数和高阶函数,这篇再把函数的其他部分补充一下,稍微轻松简单一些. 文末评论送书,学委会用这个抽奖程序来进 ...

  9. JNI中参数的传递与操作

    Jni中C++和Java的参数传递 如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章: 利用 ...

最新文章

  1. day3_python学习笔记_chapter5_数字
  2. 又到 6 月底,想来和你聊一聊毕业季,愿你前程似锦!
  3. MongoDB源码阅读之ReplSet源码分析
  4. Spring– DAO和服务层
  5. php dirname(_FILE_)
  6. Reachability的用法 判断用户的网络状态
  7. ubuntu通过iptables设置某一个ip网段禁用所有端口
  8. Linux系统(三)vi、vim编辑器和shell编程
  9. hive教程:第一次使用sql
  10. DirectX11参考资料之美
  11. 杜兰大学计算机专业,杜兰大学计算机科学
  12. iOS 架构模式 - 简述 MVC, MVP, MVVM
  13. java自定义lock锁
  14. 如何高效学习的一点思考
  15. 编码 unicode 及其在 javascript 中的使用
  16. 面试高频算法题补充系列:木棍切割问题
  17. python基于django的考研报名交流平台
  18. 数学常用语的英文表示
  19. 美国得州大停电是“人祸”,别想让光伏风电背锅!
  20. VB计算MACD指标详细编码

热门文章

  1. OpenCV实现多张图像拼接
  2. vector---赋值操作
  3. 推荐 :一文读懂概率论学习:贝叶斯理论(附链接)
  4. kmalloc详解与分配大小的限制
  5. C++常见崩溃(最近遇到)
  6. android工作资料已锁定,Android的锁定屏幕使用Android无法正常工作
  7. JavaCV音视频开发宝典:rtp点到点音视频传输TS流(一对一音视频直播)
  8. 通俗易懂Xmodem协议
  9. 小新15适合学计算机的学生吗,小新Pro13真实测评:超适合学生党!
  10. mysql中int(11)长度