Python 中的变量赋值

发表时间 2021-05-24
阅读1分钟

本文简单介绍 Python 中的变量赋值底层原理。

基本赋值语句

Python 开发中最基本和最常用的命令就是变量赋值语句:

age = 24

给人的感觉就是代数中的概念:名称为 age 的变量,其值被定义为 24.

但是底层不能这么简单的保存,因为还有其他信息。比如:数据类型。

可以把数据想象成一个篮子,里面装了多个属性,比如:

age: {
  value: 24, 
  type: int
  }

用图形表示,就是下面的图:

908.png

赋值语句执行后,一个名叫 age 的指针就指向了这个数据篮子:

909.png

为变量起别名

如果以 上一节 的赋值语句为基础,我们再建立一个新的变量:

score = age

那么底层的原理并不是创建一个新的 score 对象,而是将新的变量名指向原来的 age 所指的对象。

910.png

score 就变成了 age 的别名(alias),同一种物品的不同名字而已。这时候调用 score 或者 age,操作的是同一个数据对象。

修改数值

如果这时候改变了任何一个别名指向的数值,比如:

age = age + 5

那么这时候会创建一个新的数据对象,而不会影响别名所指的对象。

911.png

本站是个人博客。除非特别说明,所有文章均系原创,并采用 署名协议 CC-BY 授权。
欢迎转载,惟请保留原文链接:/tech/identifier-assignment-in-python/