Python:Python 中的变量到底是什么
2020-07-19 本文已影响0人
dex0423
1. 变量的概念
-- 用标识符命名的存储单元的地址称为变量;
-- 变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值;
2. 变量三要素
- 变量是有三部分构成,变量名、赋值符号、变量值,示例如下:
# 变量名 赋值符号 变量值
name = "Tom"
- 变量名
-- 即 name;
-- 当变量定义的时候,会在内存中申请一块空间专门用来存放变量值,而变量名就是这个空间的 门牌号,能方便的找到这块内存空间; - 赋值符号
-- 即 == 号;
-- 它的意义是将右侧的变量值内存地址绑给左侧的变量名,当赋值动作完成后,变量名所指向的存储单元存储了被赋的值;
-- 在Pyhton语言中赋值操作符为“=、+=、-=、=、/=、%=、*=、//=”; - 变量值
-- 即 "Tom" 这个字符串;
-- 变量值就是内存区域的状态,被修改为 "Tom" 这个字符串,定义之后可以用变量名来访问这个字符串;
-- 变量值有一个 引用次数,一旦这块空间被引用次数为 0,就意味着我们没有途径能找到这块空间了,此时如果不对其进行清理,就会导致内存被占用;
-- 系统找不到这块空间时,就会触发Python的内存管理 垃圾回收机制,对该空间进行回收在利用;
3. 变量三特性
- id
-- 就是变量值得内存空间地址,每一个值都有唯一一个id;
-- 内存地址不同,id就不相同;
-- 可以使用 id() 来查看变量的内存地址。 - type
-- 不同类型的值记录事物的状态有所不同,这就是Python的数据类型,如 str、int 等;
-- 可以使用type()来查看。 - 变量值
-- 变量值就是存储值的本身。 - Python 和 Java 中 变量的区别
-- Java 中声明变量的时候,会在内存中开辟一个内存区域,这个区域的大小根据变量的类型不同而不同;
-- Python 中变量实质上是一个指针,先把变量的赋值(入一个整数)创建好,然后把变量的指针指向创建好的区域。这类似于 便利贴,变量本身没有类型,赋值才有类型,变量只是贴在赋值上的一个 “便利贴” 而已;
4. 变量操作示例
- 查看变量三特性
>>> a = "hello" # 赋值
>>> id(a) # 查看 id
2280593916592
>>> type(a) # 查看 type
<class 'str'>
>>> print(a) # 查看值
hello
- 多变量指向同一内存区域
-- 有如下代码和执行结果;
>>> a = [1, 2, 3]
>>> b = a
>>> b.append(4)
>>> print(a)
[1, 2, 3, 4]
-- 通过上面的示例我们发现,我们将 a 赋值给 b 以后,对 b 的 append 操作直接影响了 a,导致 a 也跟着 append 一个 4 元素;
-- 这从侧面说明 a 和 b 两个变量指向同一块内存区域。