Python中值传递和引用传递区别
原文: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中值传递和引用传递区别相关推荐
- Python学习:Python中参数传递,是值传递,引用传递or其它
本博客主要学习python参数传递机制,了解python的参数是如何传递的.学过其它语言如(C,C++),都知道参数传递有值传递和引用传递,python的参数传递属于哪种? 一.值传递和引用传递 值传 ...
- python中的值传递和引用传递
今天和大家分享python中很重要的一个知识点:参数传递,其中包括值传递和引用传递. 目录 一.为什么要熟悉值传递和引用传递 1.1 值传递 1.2 引用传递 二.Python变量及其赋值 三.Pyt ...
- python参数传递方法_深入理解python中函数传递参数是值传递还是引用传递
python 的 深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是&q ...
- 三分钟让你掌握JavaScript中值传递和引用传递的区别
值传递:传递的是实际参数的一个副本.基本数据类型Undefined,Null,Boolean,Number.String都是值传递. 引用传递:传递的是实际参数的地址.引用数据类型Object,Arr ...
- java中的就近原则、方法中值传递和引用传递的区别、什么是构造方法、this关键字用法、什么是封装
你知道java中的就近原则嘛? package com.Test.java; /*** * 在java里面有一个"就近原则"详情可以参照下面代码**/public class Ac ...
- Java中值传递和引用传递原理以及区别
Java在参数传递时有两种:一种是按值传递,一种是按引用传递 值传递:值传递是指在调用方法时将实际参数复制一份传递到方法中,也就是说,在调用方法时,实际参数把他的值的副本传递给对应的形式参数.(注意这 ...
- python引用传递和值传递的区别_Python 值传递和引用传递
值传递和引用传递 python的值传递不会改变传入参数的值,而引用传递传入的是一个地址,有点类似c的指针,在执行完成之后会改变传入地址所指的值. 值传递类型如下: 上面的代码只是将a的值作为参数传递进 ...
- java中的值传递和引用传递的区别?
1.值传递概念:值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数. 实例: public class Main {public static ...
- list修改元素的值_第115天:Python 到底是值传递还是引用传递
我们平时写的 Python 程序中充斥着大量的函数,包括系统自带函数和自定义函数,当我们调用函数时直接将参数传递进去然后坐等接收返回值即可,简直不要太好用.那么你知道函数的参数是怎么传递的么,是值传递 ...
最新文章
- Git Gui for Windows的建库、克隆(clone)、上传(push)、下载(pull)、合并(转)
- 当map遇上range
- IoT与区块链的机遇与挑战
- shell编程之条件语句(文件测试,test命令,字符串和逻辑测试,if单支语句,if双支语句,if多支语句,case命令,用if写跑步小实验)
- 我到底去考研,还是工作啊?好纠结
- oracle错误27101,ORA-27101ORA-01034错误解决
- 数据结构之图的基本操作
- sublime text3 快捷方式汇总
- asp.net回调javascript
- eclipse反编译
- CSS 标签左右分布的多种方法
- Unity 风吹草的实现
- 删除IE浏览器input框自带的删除叉
- 主动降噪耳机推荐,值得入手的四款降噪蓝牙耳机分享
- adb install 命令参数
- 基于支持向量机的谐波分析研究与实现
- 中国象棋游戏Chess(3) - 实现走棋规则
- C51中intrins_h头文件解释分析
- 空气污染指数API的计算方法
- 创客机器人比赛简讯_“让思维沸腾,让创造先行”——记我校参加同安区首届创客大赛活动报道...
热门文章
- 内核同步机制——自旋锁
- 利用计算机解决问题实际依赖,行测答题技巧:准确把握加强、削弱的“相关性”...
- JAVA继承心得体会及建议_Java继承总结
- 做一个python的旅游系统_有了它,妈妈再也不担心我感冒了,Python使用迭代器进行天气预报...
- html5斐波那契数列,经典的斐波那契数列与arguments.callee
- linux 普通用户touch权限不够_一篇文章让你轻松了解 Linux 的权限
- 皮一皮:原来网恋就是这个感觉...
- 35岁之后,你还会继续写代码吗?
- Java中的微信支付(2):API V3 微信平台证书的获取与刷新
- 公司新来了个大神,一次分享他的 9 大技能