Python中如何区分可变类型和不可变类型及其引用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1171个文字,预计阅读时间需要5分钟。
python定义一个数据类型,并为其分配内存空间在内存中为该变量分配一个存储位置访问该内存空间需要使用变量名,变量名在实际上是一个指向存储位置的指针
基本数据类型的引用
在Python中定义一个数据便在内存中开辟一片空间来存储这个变量的值,这块已经被分配的内存空间便会有一个内存地址。访问这块内存需要用到变量名,变量名实际存储的是变量的地址在内存中的地址,但是使用print()函数得到的确实这块内存中实际的地址。这个就当成规定就好,没必要纠结。
获得变量在内存中的地址,可以使用id()函数。
常规使用
变量之间的赋值其实是把一个变量的内存地址传递给另一个变量,这样两个变量便都指向内存中的同一块空间,因此这两个变量的之是相等的
a = 1 b = a print("a:%d b:%d" % (a,b)) print(id(a)) print(id(b)) 结果: a:1 b:1 1711072016 1711072016
此时如果有第三个变量c的值与a的相等,那么c的地址与a的地址一样。这一点请大家牢记。
a = 1 c = 1 print("a:%d c:%d" % (a,c)) print(id(a)) print(id(c)) 结果: a:1 c:1 1711072016 1711072016
此时如果修改变量c的值,那么会在内存中新开辟一块内存来存储这个变量,这块新的内存地址将会赋值给c。
本文共计1171个文字,预计阅读时间需要5分钟。
python定义一个数据类型,并为其分配内存空间在内存中为该变量分配一个存储位置访问该内存空间需要使用变量名,变量名在实际上是一个指向存储位置的指针
基本数据类型的引用
在Python中定义一个数据便在内存中开辟一片空间来存储这个变量的值,这块已经被分配的内存空间便会有一个内存地址。访问这块内存需要用到变量名,变量名实际存储的是变量的地址在内存中的地址,但是使用print()函数得到的确实这块内存中实际的地址。这个就当成规定就好,没必要纠结。
获得变量在内存中的地址,可以使用id()函数。
常规使用
变量之间的赋值其实是把一个变量的内存地址传递给另一个变量,这样两个变量便都指向内存中的同一块空间,因此这两个变量的之是相等的
a = 1 b = a print("a:%d b:%d" % (a,b)) print(id(a)) print(id(b)) 结果: a:1 b:1 1711072016 1711072016
此时如果有第三个变量c的值与a的相等,那么c的地址与a的地址一样。这一点请大家牢记。
a = 1 c = 1 print("a:%d c:%d" % (a,c)) print(id(a)) print(id(c)) 结果: a:1 c:1 1711072016 1711072016
此时如果修改变量c的值,那么会在内存中新开辟一块内存来存储这个变量,这块新的内存地址将会赋值给c。

