Python中的对象与参考
参考
当创建一个对象并给它赋一个变量的时候,这个变量仅仅参考哪个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
对象与参考的例子
注意两次不同的赋值操作listA的不同
listA = ['a','b','c','d']
listB = listA  # 普通赋值操作,只是使得listB参考listA
del listA[0]
# listB的值始终和listB保持同步,因为数据都在同一个内存地址中
print('listA:',listA)
print('listB:',listB)
listA = ['a','b','c','d']
listB = listA[:] # listA现在独立于listB,即二者内存地址不同
print('使用切片来对列表进行赋值')
print('listA:',listA)
print('listB:',listB)
output:
listA: ['b', 'c', 'd']
listB: ['b', 'c', 'd']
使用切片来对列表进行赋值
listA: ['a', 'b', 'c', 'd']
listB: ['a', 'b', 'c', 'd']
如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的话,可能会引来各种麻烦。
给Perl程序员的注释
记住列表的赋值语句不创建拷贝。你得使用切片操作符来建立序列的拷贝。
Python中的对象与参考的更多相关文章
- python中拷贝对象的区别
		
一.赋值.引用 在python中赋值语句总是建立对象的引用值,而不是复制对象.因此,python变量更像是指针,而不是数据存储区域 这点和大多数语音类似吧,比如C++.Java等 1.先看个例子: v ...
 - python中生成器对象和return 还有循环的区别
		
python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因 ...
 - PyObject and PyTypeObject - Python 中的 '对象' 们
		
1 PyObject, PyTypeObject - Python 中的 '对象' 们 '一切皆对象' - 这是 Python 的学习和使用者们最最常听到一句, 可谓 博大精深 - '勃大精深'. ' ...
 - 关于Python中数据对象的可变性
		
先贴上Python官网中对数据模型描述的几段话.(在python官网的 语言参考>>数据模型 那部分) Every object has an identity, a type and a ...
 - python中的对象拷贝
		
python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引用传递.那python怎样对列表和字典进行拷贝传递呢:标准库的copy模块提供了两个方法:copy和d ...
 - Python中Json对象处理的jsonpath-rw
		
这两天在写一个爬虫,需要从网站返回的json数据提取一些有用的数据. 向url发起请求,返回的是response,在python3中,response.content是二进制bytes类型的,需要用d ...
 - Python中的对象行为与特殊方法(二)类型检查与抽象基类
		
类型检查 创建类的实例时,该实例的类型为类本身: class Foo(object): pass f = Foo() 要测试实例是否属于某个类,可以使用type()内置函数: >>> ...
 - 【转】python中的对象拷贝
		
转自:https://www.cnblogs.com/bhlsheji/p/5352330.html python中.进行函数參数传递或者返回值时,假设是一般的变量,会拷贝传递.假设是列表或字典则是引 ...
 - python中判断对象类型的函数——isinstance
		
isinstance是Python中的一个内建函数.是用来判断一个对象的变量类型. isinstance(object, class-or-type-or-tuple) 如果参数object是clas ...
 
随机推荐
- C/C++语言,自学资源,滚动更新中……
			
以下教学视频中,缺少对“字符串”技术的讨论,大家注意看书. 一维数组,及其举例:(第四版)P77~P85,书上这部分内容写的很好,很详细,尤其是这里列出来的每一个例子都要仔细去看一看,对你会很有帮助. ...
 - centos6.5搭建rabbitmq服务器(单机)
			
安装编译工具 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel 安装Erlang 1. 下载erl ...
 - RH124-3 目录结构_转
			
在linux里安装的时候,是可以指定某分区装在某文件夹里 目录意义 /bin 存放命令,不可以在装系统单独挂载分区 /home /dev 存放硬件设备 不可以单独挂载分区 /boot 500M 和系统 ...
 - CentOS系统安装配置JDK
			
我们可以通过xftp工具将jdk文件上传至CentOS系统指定文件夹中 一.安装jdk 进入jdk存放目录,将jdk解压至install文件夹中: tar -zxf jdk-8u151-linux-x ...
 - 2个CDH的hive数据同步
			
算法和数仓共用一套hive数据: CM: 真实数据: 都存在共享存储: oss, s3,ufile上. CDH配置能访问的权限(key)
 - [转帖]Nginx为什么高效?一文搞明白Nginx核心原理
			
Nginx为什么高效?一文搞明白Nginx核心原理 咔咔侃技术 2019-09-06 15:37:00 https://www.toutiao.com/a6733057587622707724/ Ng ...
 - K8S 从入门到放弃系列文章目录(Kubernetes 1.14)
			
1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...
 - Netty框架原理
			
用这张图表示的就是一个基本的Netty框架 通过创建两个线程池,一个负责接入, 一个负责处理 public class Start { public static void main(String[] ...
 - BinaryTree(HDU-5573)【思维/构造】
			
题目链接:https://vjudge.net/problem/HDU-5573 题意:一棵二叉树,编号代表对应节点的取值,可以走k步,每次走的层数递增,问能够达到N的方案. 思路:首先看一下数据范围 ...
 - WinRAR 去广告的姿势
			
一直在使用WinRAR解压文件,感觉非常的好用,可是现在WinRAR添加了广告,每次打开压缩包都会弹出广告,有时候甚至在解压的时候弹出来,而每次弹出广告都会卡顿一下,忍了很长时间今天实在是受够了,准备 ...