列出python中可变数据类型和不可变数据类型,并简述原理
2024-09-01 06:07:50
可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
- list
- dict
- set
- bytearray
- user-defined classes (除非是特别定义的不可变)
a = [,]
b = [,]
print(id(a))
print(id(b))
不可变类型(immutable):改变了变量的值 == 新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址), python的id()
方法让你明白
- int
- float
- decimal
- complex
- bool
- string
- tuple
- range
- frozenset
- bytes
例子
a =
b =
print(id(a))
print(id(b)) # mem addr is same with a
a =
print(id(a)) boolx = True
print(id(boolx))
boolx = False
print(id(boolx))
输出
[Program finished]
最新文章
- myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)
- Solr5.5.1 IK中文分词配置与使用
- Swift 基本常量和变量,基本数据类型
- Python使用struct处理二进制
- XmlDocument解析Soap格式文件案例:
- postgresql+slony-i安装配置主从
- JDK7学习笔记之基础类型
- shelve模块理解
- 更改Windows控制台默认缓冲区行数和宽度
- Hark的数据结构与算法练习之桶排序
- JavaScript中字符串转Json方法小记
- ArcGIS 开发的一些知识学习点
- Sereja and Suffixes(思维)
- css新属性box-sizing应用
- Mysql数据库导出数据字典文档Word或者HTML的3个工具
- 利用USearch去除嵌合体(chimeras)
- 0 vs工程添加sdk
- Topological Sorting拓扑排序
- 什么是LTE?
- tomcat7 配置 https安全访问