python引用传递和值传递的区别_Python 值传递和引用传递
值传递和引用传递
python的值传递不会改变传入参数的值,而引用传递传入的是一个地址,有点类似c的指针,在执行完成之后会改变传入地址所指的值。
值传递类型如下:
上面的代码只是将a的值作为参数传递进去,程序执行完之后a的值并未改变
a = 1
def change_integer(a):
a = a + 1
return a
print change_integer(a)
print a
结果:
2
1
[Finished in 0.1s]
引用传递的类型如下:
b = [1, 2, 3]
def change_list(b):
b[0]= b[0]+1
return b
print change_list(b)
print b
结果:
[2, 2, 3]
[2, 2, 3]
[Finished in 0.1s]
而这里将b的地址传递进去之后,程序执行完之后b的值也随之改变。
如何解决 变量 : 由 引用传递 变为 值传递??
方案如下:
import copy
b = [1, 2, 3]
def change_list(b):
b[0]= b[0]+1
return b
print change_list(copy.deepcopy(b))
print b
结果:
[2, 2, 3]
[1, 2, 3]
[Finished in 0.1s]
python引用传递和值传递的区别_Python 值传递和引用传递相关推荐
- python实例方法、类方法、静态方法的区别_Python 实例方法、类方法、静态方法的区别与作用...
Python 实例方法.类方法.静态方法的区别与作用 一.总结 一句话总结: 实例方法:第一个参数必须是实例对象,该参数名一般约定为"self",通过它来传递实例的属性和方法(也可 ...
- python中的return和print的区别_python中return和print的区别(详细)
Huskiesir python最近正在研究.今天,我面临一个问题,那就是,返回和印刷的区别.双方都能输出结果.的区别是什么?闲话少说,看下面的例子.# Code1: def break_words( ...
- python中单引号和双引号的区别_python中单引号和双引号的区别
在Python当中表达字符串既可以使用单引号,也可以使用双引号,那两者有什么区别吗? python单引号和双引号的区别 简单来说,在Python中使用单引号或双引号是没有区别的,都可以用来表示一个字符 ...
- python中的字典和类的区别_Python中的 字典和字典数据类型
字典 1.字典是Python的内建数据类型,我们知道序列是以连续的整数为索引,而字典用关键字作为索引.特别的,关键字必须是不可变类型,常为字符串或者数值. #如果元组中只包含字符串和数字,它可以作为关 ...
- python中协程与函数的区别_python协程和异步IO
1.并发.并行.同步.异步.阻塞.非阻塞 并发:是指在同一个时间段内,有几个程序都处于启动运行到运行结束之间 并行:在同一个时间点上,有几个程序同时运行 同步:当一个同步操作发出去后,调用者一直等待返 ...
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- python中元祖 字典 列表的区别_Python中元祖,列表,字典的区别
原博文 2016-08-16 15:25 − Python中有3种內建的数据结构:列表.元祖和字典: 1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表中的 ...
- python中init和setup有什么区别_python – 为什么setup.py在安装期间运行模块__init__.py?...
我正在使用setup.py安装包: python setup.py install 我正在安装的软件包中的__init__.py包含一些软件包级别检查,其中一个检查settings.py中是否有可用的 ...
- python中单引号和双引号的区别_python中单引号,双引号,多引号区别
先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 = "hello,world" 如果要写成多行,那么就要使用\ ("连行符")吧 ...
最新文章
- 系统架构设计师难吗?IT行业员工的最高荣耀是什么
- NIO详解(十二):AsynchronousFileChannel详解
- macOS Monterey新问题:“内存泄漏”,应用后台运行消耗上百 GB 内存
- su 、 sudo 命令及限制 root 远程登录
- ACM Robot Motion
- Git 报错:error: The requested URL returned error: 401 Unauthorized while accessing
- 无痛学习ISAC(一)
- 纯干货:嘀嘀打车App初期是怎么推广的? 钱皓-互联网分析师,微信号(qianhaoapp)
- R语言使用timeROC包计算存在竞争风险情况下的生存资料多时间AUC值、使用cox模型、并添加协变量、R语言使用timeROC包的plotAUCcurve函数可视化多时间生存资料的AUC曲线
- 刷题记录:牛客NC23803DongDong认亲戚
- Qt5.12 使用FFmpeg实时解码播放H264/H265摄像头记录(直传数据法)
- 移动端——less(学会less,这一篇就够了)
- crontab 奇数时间定时执行
- rk 平台实现 otg 软切换
- storyboard 使用
- python - 啃书 第七章 模块、包和库 (二)
- Linux内存控制器(一)
- 计算机硕士跨专业考研建筑,由建筑专业到计算机专业跨专业考研,好心人垂教阿...
- 【ZZULIOJ】1103: 平均学分绩点(函数专题)
- catia直线测距怎么调出来_基于CATIA和激光跟踪仪的部件设计检验一体化方法与流程...