06-python列表内存详细讲解
2018-01-09 21:07
183 查看
来几个例题先把.
1.
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
age[20,21,22]
student = Student("李小璐",age)
age[0] = 18
print(student.age) ================>[18,21,22]
2.
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
age[20,21,22]
student = Student("李小璐",age[0])
age[0] = 19
print(student.age) ==========>20
为啥会出现这种情况呢?只知道列表是可变的,那从内存中怎么解释的呢?来看图
![](https://img-blog.csdn.net/20180109212124265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzYwNjg1NTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
第一题,传的是整个列表,所以函数得到的是这个列表的地址,当你执行age[0] = 18,内存中的理解,是让age[0]本存放数据20的内存地址,换成存储数据18的内存地址.没有换列表.因此可以看到列表的数据的改变.
第二题,是将age[0]的地址,也就是数据20的地址传进去.因此当你执行age[0] = 19,只是让age[0]存放数据19的地址.若看列表,可以看到数据的修改.
1.
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
age[20,21,22]
student = Student("李小璐",age)
age[0] = 18
print(student.age) ================>[18,21,22]
2.
class Student:
def __init__(self,name,age):
self.name = name
self.age = age
age[20,21,22]
student = Student("李小璐",age[0])
age[0] = 19
print(student.age) ==========>20
为啥会出现这种情况呢?只知道列表是可变的,那从内存中怎么解释的呢?来看图
第一题,传的是整个列表,所以函数得到的是这个列表的地址,当你执行age[0] = 18,内存中的理解,是让age[0]本存放数据20的内存地址,换成存储数据18的内存地址.没有换列表.因此可以看到列表的数据的改变.
第二题,是将age[0]的地址,也就是数据20的地址传进去.因此当你执行age[0] = 19,只是让age[0]存放数据19的地址.若看列表,可以看到数据的修改.
相关文章推荐
- python列表详细讲解
- Python中列表和元组的相关语句和方法讲解
- 随机数random,数组的详细讲解,内存的分配,数组的寻址,数组的地址值
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- 举例讲解Python中的list列表数据结构用法
- Python3 正则表达式特殊符号及用法(详细列表) http://bbs.fishc.com/thread-57691-1-1.html (出处: 鱼C论坛)
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- Python语言学习讲解五:列表(List)操作方法详解
- python之计算系统空闲内存、列表字典相互转换
- Python 列表详细使用
- python编写shell脚本详细讲解
- [视频讲解]GridView里做链接实现新闻列表到详细内容页的跳转
- 06 序列:字符串、列表和元组 - 《Python 核心编程》
- Java内存分配的栈、堆以以及常量池详细的讲解
- Python3 正则表达式特殊符号及用法(详细列表)
- Python 序列的切片操作与技巧 详细讲解
- python+opencv图像金字塔融合 (超详细讲解原理及代码讲解)
- 详细讲解从用户空间申请内存到内核如何为其分配内存的过程
- 详细讲解Android图片下载框架UniversialImageLoader之内存缓存(三)