原文:http://blog.csdn.net/xuqiaobo/article/details/72236539

举例,函数参数如果是dic,都不需要返回值,原值就被改变了

def aa(dic):dic["aa"]=2
    dic["bb"] = 2
dic={}
dic["aa"]=1
aa(dic)
print(dic)

Python中值传递和引用传递区别

python中对一个函数可以传递参数,但是如何分辨是值传递还是引用传递,不是程序员手动控制的,而是python根据你传入的数据对象,自动识别的。

如果你传入的参数对象是可变对象:列表,字典,这个时候就是引用传递,如果参数在函数体内被修改,那么源对象也会被修改。

如果你传入的参数对象是不可变的对象:数字,元组,字符串,这个时候就是值传递。那么源对象是不会改变的,

例子一

import sys
a=2
b=[1,2,3]
def change(x,y):x=3
   y[0]=4
change(a,b)
print a,b

输出结果: 2 [4, 2, 3];可以看出数字作为一个不可变对象,a的值没有变化,而b作为列表对象,是可变对象,所以b被改变了

例子二:

import sys
a="11111"
b={"a":1,"b":2,"c":3}
def change(x,y):x="222"
   y["a"]=4
change(a,b)
print a,b

输出结果:11111 {'a': 4, 'c': 3, 'b': 2},a作为字符串是不可变对象,所以没变化,b作为字典,是可变对象,所以被改变了

例子三:

import sys
a=(1,2,3)
b={"a":1,"b":2,"c":3}
def change(x,y):x="222"
   y["a"]=4
change(a,b)
print a,b

输出的结果:(1, 2, 3) {'a': 4, 'c': 3, 'b': 2}

Python中值传递和引用传递区别相关推荐

  1. Python学习:Python中参数传递,是值传递,引用传递or其它

    本博客主要学习python参数传递机制,了解python的参数是如何传递的.学过其它语言如(C,C++),都知道参数传递有值传递和引用传递,python的参数传递属于哪种? 一.值传递和引用传递 值传 ...

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

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

  3. python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递

    python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...

  4. 三分钟让你掌握JavaScript中值传递和引用传递的区别

    值传递:传递的是实际参数的一个副本.基本数据类型Undefined,Null,Boolean,Number.String都是值传递. 引用传递:传递的是实际参数的地址.引用数据类型Object,Arr ...

  5. java中的就近原则、方法中值传递和引用传递的区别、什么是构造方法、this关键字用法、什么是封装

    你知道java中的就近原则嘛? package com.Test.java; /*** * 在java里面有一个"就近原则"详情可以参照下面代码**/public class Ac ...

  6. Java中值传递和引用传递原理以及区别

    Java在参数传递时有两种:一种是按值传递,一种是按引用传递 值传递:值传递是指在调用方法时将实际参数复制一份传递到方法中,也就是说,在调用方法时,实际参数把他的值的副本传递给对应的形式参数.(注意这 ...

  7. python引用传递和值传递的区别_Python 值传递和引用传递

    值传递和引用传递 python的值传递不会改变传入参数的值,而引用传递传入的是一个地址,有点类似c的指针,在执行完成之后会改变传入地址所指的值. 值传递类型如下: 上面的代码只是将a的值作为参数传递进 ...

  8. java中的值传递和引用传递的区别?

    1.值传递概念:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数. 实例: public class Main {public static ...

  9. list修改元素的值_第115天:Python 到底是值传递还是引用传递

    我们平时写的 Python 程序中充斥着大量的函数,包括系统自带函数和自定义函数,当我们调用函数时直接将参数传递进去然后坐等接收返回值即可,简直不要太好用.那么你知道函数的参数是怎么传递的么,是值传递 ...

最新文章

  1. Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并(转)
  2. 当map遇上range
  3. IoT与区块链的机遇与挑战
  4. shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)
  5. 我到底去考研,还是工作啊?好纠结
  6. oracle错误27101,ORA-27101ORA-01034错误解决
  7. 数据结构之图的基本操作
  8. sublime text3 快捷方式汇总
  9. asp.net回调javascript
  10. eclipse反编译
  11. CSS 标签左右分布的多种方法
  12. Unity 风吹草的实现
  13. 删除IE浏览器input框自带的删除叉
  14. 主动降噪耳机推荐,值得入手的四款降噪蓝牙耳机分享
  15. adb install 命令参数
  16. 基于支持向量机的谐波分析研究与实现
  17. 中国象棋游戏Chess(3) - 实现走棋规则
  18. C51中intrins_h头文件解释分析
  19. 空气污染指数API的计算方法
  20. 创客机器人比赛简讯_“让思维沸腾,让创造先行”——记我校参加同安区首届创客大赛活动报道...

热门文章

  1. 内核同步机制——自旋锁
  2. 利用计算机解决问题实际依赖,行测答题技巧:准确把握加强、削弱的“相关性”...
  3. JAVA继承心得体会及建议_Java继承总结
  4. 做一个python的旅游系统_有了它,妈妈再也不担心我感冒了,Python使用迭代器进行天气预报...
  5. html5斐波那契数列,经典的斐波那契数列与arguments.callee
  6. linux 普通用户touch权限不够_一篇文章让你轻松了解 Linux 的权限
  7. 皮一皮:原来网恋就是这个感觉...
  8. 35岁之后,你还会继续写代码吗?
  9. Java中的微信支付(2):API V3 微信平台证书的获取与刷新
  10. 公司新来了个大神,一次分享他的 9 大技能