Python中对象的引用和共享引用
来源:互联网 发布:浴室柜品牌 知乎 编辑:程序博客网 时间:2024/06/11 05:40
在Python中先创建一个对象,然后再将变量指向所创建的对象。
对于每个对象,都有一个头部信息,在信息中就标记了这个对象的类型信息。每当一个变量名被赋予了一个新的对象,之前那个对象占用的空间就回被回收(如果此时这个对象没有被别的变量名或者对象所引用的话)。另外,在python中,每个对象都保有一个计数器,计数器中记录了这个对象被引用的次数,当这个计数器被置为0时,对象所占用的内存空间就会被释放,即当做垃圾回收。
共享引用:
在python中,变量总是一个指向对象的指针,而不是可以改变的内存区域标签。给一个变量赋予一个新的值,不是替换了原始的对象,而是让这个变量去引用一个新的对象,实际效果就是对变量重新赋值,这仅仅会影响到那个被重新赋值的变量。
另外,在这里说一下 “ == ”和“ is ”这个操作符
==,和C语言中的作用是一样的,测试两个被引用的对象的值是否一致;
is,检查两个对象的同一性,判断两个对象名是否指向同一地址空间,如果是则返回True。如图,
创建两个列表对象,即使它们的值相同,也是来源于不同的空间。因此is的比较结果为假
也许有的朋友测试了一个如上图的例子,结果 is 竟然返回True。这不是代表它们是指向同一个对象,而是在内存中,小的整数和字符串被缓存复用了,所以is才告诉我们a和b是引用了相同的对象。
0 0
- Python中对象的引用和共享引用
- Python中对象的理解:引用和赋值
- python的对象引用
- java中对象和对象的引用
- java中对象和对象的引用
- JAVA中对象和对象的引用
- python对象的引用特征和可变性
- 【Python】引用和对象的理解
- Python对象引用和del删除引用
- Java垃圾回收中对象的强引用,软引用,弱引用和虚引用
- python 共享引用:多个变量引用同一对象
- C#中 值引用和对象引用的区别
- JAVA中对象引用和值引用
- python中的对象和引用
- python 引用和对象理解
- python 引用和对象理解
- java中对象和引用的理解
- Java中对象和引用的理解
- [Android]ViewPager如何只初始化一个页面
- 二进制位的应用
- 直接插入排序
- Windows上安装Maven
- 排序算法之堆排序
- Python中对象的引用和共享引用
- Shiro基础知识03----shiro授权(编程式授权),Permission详解,授权流程
- 面向对象六大设计原则(一)
- hibernate3.3.2学习笔记---多对多单向
- SSM框架学习笔记(一)简介以及Spring框架介绍
- ID卡拆解做成手机刷门禁(类似NFC功能)
- 关于MINA和Android指令收发
- Bitmap的加载和Cache
- A. One-dimensional Japanese Crossword