Python基础:Python可变对象和不可变对象
来源:互联网 发布:庆应大学留学费用 知乎 编辑:程序博客网 时间:2024/05/17 11:33
Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容是可变的,例如list。而不可变的对象则相反,表示其内容不可变。
- 不可变对象:int,string,float,tuple(故其成员函数一般有返回值,返回新对象)
- 可变对象 :list,dictionary(故其成员函数一般没有返回值,直接修改)
一、不可变对象
由于Python中的变量存放的是对象引用,所以对于不可变对象而言,尽管对象本身不可变,但变量的对象引用是可变的。运用这样的机制,有时候会让人产生糊涂,似乎可变对象变化了。如下面的代码:
- i = 73
- i += 2
从上面得知,不可变的对象的特征没有变,依然是不可变对象,变的只是创建了新对象,改变了变量的对象引用。
看看下面的代码,更能体现这点的。
- #因为258是int对象,是不可变对象的。所以下面3个id的值都是一样的,最后一句的结果也是为True
- #有点奇怪的是为什么在IDLE,和在脚本执行的结果不太一样。所以下面的代码请在脚本中执行。
- print(id(258))
- a = 258
- print(id(a))
- b = 258
- print(id(b))
- print(a is b)
二、对于可变对象
其对象的内容是可以变化的。当对象的内容发生变化时,变量的对象引用是不会变化的。如下面的例子。
- m=[5,9]
- m+=[6]
- Python基础:Python可变对象和不可变对象
- Python基础:Python可变对象和不可变对象
- python可变对象和不可变对象
- Python-可变对象和不可变对象
- python的可变和不可变对象
- python 可变对象与不可变对象
- python可变对象与不可变对象
- (python)可变对象/不可变对象
- Python中可变对象和不可变对象
- python知识点:可变对象和不可变对象
- Python中的可变对象和不可变对象
- python中 可变与不可变对象
- Python 中可变与不可变对象
- python下的可变对象与不可变对象
- 可变对象 vs 不可变对象(Python)
- python笔记-可变对象与不可变对象
- python 之可变对象与不可变对象
- Python中的可变对象与不可变对象
- Sheldon Cooper
- Swing 边框Border
- 元数据 --- 如何编写JDBC框架--DBUTILS框架
- 继承和派生
- js关键字typeof和instanceof的使用,以及js字符串与数字相互转化
- Python基础:Python可变对象和不可变对象
- Unix环境高级编程学习笔记(十) 进程间通信
- 在 Windows 上安装和使用 GNUstep 和 Objective-C
- Swing paint和paintComponent方法的关系
- POJ 3740 Easy Finding(舞蹈链)
- 必须你死我活?也谈3B,3Q,3M
- Objective C @property 参数
- Java基础
- C++Builder函数集(文件操作、获取时间、类型转换等)