深浅copy浅析

Python代码在开始执行的时候,代码会被系统从硬盘调入内存,等候CPU执行,至于怎么个调入逻辑,还不清楚。

在高级语言中,变量是对内存及其地址的抽象。也就是说变量就是内存地址。

那么我们先来介绍两种变量的两种存储方式:引用语义和值语义。

引用语义:变量保存的是对象(值)的引用,我们称为引用语义。采用这种方式,变量所需的存储空间大小一致,因为变量只是保存了一个引用,当然可变数据类型存储空间的大小也不一样。也被称为对象语义和指针语义。

值语义:有些语言采用的不是这种方式,它们把变量的值直接保存在变量的存储区里,这种方式被我们称为值语义,例如C语言,采用这种存储方式,每一个变量在内存中所占的空间就要根据变量实际的大小而定,无法固定下来。

 Python采用的是引用语义的方式存储变量。

Python变量可分为不可变数据类型(常用的数据类型有int、long、float、bool、str等)和可变数据类型(对应python中的set、list、tuple、dict)。

由于python中的变量都是采用的引用语义,可变数据类型可以包含不可变数据类型,导致每个变量中都存储了这个变量的地址,而不是值本身;对于不可变数据类型来说,里面的存储的也只是每个元素的地址而已。

原文地址:https://www.cnblogs.com/RyanJin/p/8585811.html