Python中引用与拷贝的规律是怎样的?
- 内容介绍
- 相关推荐
本文共计1120个文字,预计阅读时间需要5分钟。
Python中的变量类型是动态的,不需要显式声明。可变对象与不可变对象以及浅拷贝与深拷贝的规则如下:
- 可变对象:如列表、字典等,其内容可以被修改。- 不可变对象:如整数、浮点数、字符串等,其内容不能被修改。- 浅拷贝:创建一个新的对象,但其中包含对原始对象中可变部分的引用。- 深拷贝:创建一个新的对象,以及其内部所有对象的深层次复制。
在Python中,使用赋值操作符`=`创建变量,例如:pythona=1 # 创建变量a,赋值为1b=a # 创建变量b,赋值为a的值在C++或Java中,赋值操作如下:c++int a=1; // 创建变量a,赋值为1int b=a; // 创建变量b,赋值为a的值在这种情况下,a和b是独立的变量,它们的值虽然相同,但地址不同。
python的可变不可变与各种浅拷贝深拷贝规则,一并梳理。
Python一切皆引用在C++/Java里,int a = 1就是创建变量为a,赋值为1;int b = a就是创建变量b,赋值为a的值。a与b是毫不相干的,即“变量是盒子”,但是这不利于理解Python中的一个变量定义。在Python里,我们把变量视为“一个实际存储的引用”(图源:《流畅的python》)。
本文共计1120个文字,预计阅读时间需要5分钟。
Python中的变量类型是动态的,不需要显式声明。可变对象与不可变对象以及浅拷贝与深拷贝的规则如下:
- 可变对象:如列表、字典等,其内容可以被修改。- 不可变对象:如整数、浮点数、字符串等,其内容不能被修改。- 浅拷贝:创建一个新的对象,但其中包含对原始对象中可变部分的引用。- 深拷贝:创建一个新的对象,以及其内部所有对象的深层次复制。
在Python中,使用赋值操作符`=`创建变量,例如:pythona=1 # 创建变量a,赋值为1b=a # 创建变量b,赋值为a的值在C++或Java中,赋值操作如下:c++int a=1; // 创建变量a,赋值为1int b=a; // 创建变量b,赋值为a的值在这种情况下,a和b是独立的变量,它们的值虽然相同,但地址不同。
python的可变不可变与各种浅拷贝深拷贝规则,一并梳理。
Python一切皆引用在C++/Java里,int a = 1就是创建变量为a,赋值为1;int b = a就是创建变量b,赋值为a的值。a与b是毫不相干的,即“变量是盒子”,但是这不利于理解Python中的一个变量定义。在Python里,我们把变量视为“一个实际存储的引用”(图源:《流畅的python》)。

