文章目录
Python 变量
在 Python 中,变量都是指针;指针的内存空间与数据类型无关,其内存空间保存了指向数据的内存地址。
💬注意:在 C 中,当定义一个变量后,编译器就一定会给该变量分配内存,后续对该变量的读写是通过该内存地址实现的;而在 Python 中,只会给对象分配内存,。
Python 对象
在 Python 中,一切皆对象,主要由以下部分组成:
- identity(ID):标识对象的“内存地址”,可使用 id(obj) 获取(唯一标识)
- type(类型):标识对象的“类型”,可使用 type(obj) 获取
- value(值):标识对象的“值”,可使用 print(obj) 获取
💬注意:对象的本质是一个内存块。
💬注意:变量无类型,对象有类型;变量位于栈内存,对象位于堆内存。
在 Python 中,对象可分为不可变对象和可变对象,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/c880fea100f2db1145c96aa5550d6351.png)
不可变对象
不可变对象包括:bool(布尔)、int(整数)、float(浮点数)、str(字符串)、tuple(元组)、frozenset(不可变集合),具有以下特性:
- 可 hash(不可变长度)
- 不支持新增
- 不支持删除
- 不支持修改
- 支持查询
可变对象
可变对象包括:list(列表)、set(集合)、dict(字典),具有以下特性:
- 不可 hash(可变长度)
- 支持新增
- 支持删除
- 支持修改
- 支持查询
什么是赋值引用?
拷贝对象的引用(即指针),使得两个变量指向同一个对象。
>>> a = {
1: [1, 2,