文档章节

关于python中对象与引用

m
 merph
发布于 2016/10/22 18:12
字数 309
阅读 3
收藏 0

当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个
对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑
定。例:

shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist
del shoplist[0]

如上代码所示:

当删除shoplist[0]时,是在内存中直接删除了,而mylist = shoplist 是将mylist指针也指向该内存,

所以此时 mylist = ['mango', 'carrot', 'banana']

如果你想要复制一个列表或者类似的序
列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符[:]来取得
拷贝。如果你只是想要使用另一个变量名,两个名称都 引用 同一个对象,那么如果你不小心
的话,可能会引来各种麻烦。

如下所示:

shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist[:]
del shoplist[0]

当mylist = shoplist[:]时,删除shoplist中的某个元素,对mylist没有任何影响。

 

记住列表的赋值语句不创建拷贝。你得使用切片操作符来建立序列的拷贝。
 

© 著作权归作者所有

下一篇: python(六)
m
粉丝 0
博文 21
码字总数 12761
作品 0
北京
程序员
私信 提问
Python动态类型的学习---引用的理解

一,Python浅拷贝和深拷贝 浅拷贝是指拷贝的只是原对象元素的引用,换句话说,浅拷贝产生的对象本身是新的,但是它的内容不是新的,只是对原对象的一个引用。这里有个例子 >>> aList=[[1, 2...

herlang
2013/04/10
0
0
看书 Python 源码分析笔记 (一) 对象初探

从网络上下载《 Python 源码剖析》一书, 好好看一下别人的源码, 顺便笔记一下免得忘记. (作者: 陈儒, 副标题: 深度探索动态语言核心技术, 大概是 2008 年出版) 书中所分析的 Python 版本为 ...

刘军兴
2015/12/18
0
0
探索 Python 之 变量、类型和引用

在探索到 Python 函数的参数传递的时候,我不禁赞叹 Python 灵活的参数设计,但慢慢的,开始迷惑与传递参数的修改和返回。 众所周知,在 C++ 中传递参数分为传值和传引用两种,但 Python 没有...

charlesdong1989
2012/03/29
0
2
对比 Ruby 和 Python 的垃圾回收

注:这篇文章基于我在布达佩斯的RuPy大会上所作的演讲。我觉得与其直接将幻灯片发布出来,不如在我还有印象的时候将它写成博客来的更有意义。同 样,我会在将来发布RuPy大会的视频链接。我计...

oschina
2014/06/19
4.9K
28
投稿007期|令人震惊到发指的PyObject对象代码设计之美

前言 最近在重温经典漫画《SlamDunk》的全国大赛篇,其中的一个情形可以很好的诠释虎躯一震这个状态——当樱木看到流川枫一次高难度投篮时内心的感受:“经过两万次射球练习后,樱木首次明白...

元宵大师
2018/08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7 新手阿里云服务器安装mongodb

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB特点 模式自由 :可以把不同结构的文档存...

醉雨
32分钟前
3
0
sql注入漏洞,应屏蔽SQL注入攻击

注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1 from dual where 1=1 or 1=1 and 1=2;(类似这样的SQL语句) 防御方法 如果自己编写防注代码,一般是先定义一个函...

颜丽
32分钟前
3
0
装饰者模式

 代理模式与装饰者模式看起来很像,都实现基础对象实现的接口,在其自身对象中都保存着对被代理/被装饰者的对象引用。   先来看看装饰者模式的定义:动态的将责任附加到被装饰者对象上,用...

铁骨铮铮
37分钟前
2
0
我为什么飞行 10000 公里去西班牙参加 KubeCon?

2019 年 5 月 20 日至 23 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCon EU(欧洲场)即将在热情洋溢的巴塞罗那盛装启幕。 作为云计算领...

zhaowei121
55分钟前
2
0
Node.getTextContent() not found 解决办法【不需要调整builder path下面包顺序】

新导入的工程,w3c的getTextContent找不到,response的setCharacterEncoding找不到,网上很多教程都是“调整工程builder path的lib包顺序把jre、tomcat调到上面即可”,但是进入项目的build...

嘿嘿嘿IT
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部