在Python中将一个变量的值分配给另一个变量时会发生什么?
这是我学习python的第二天(我了解C ++和一些OOP的基础知识),并且我对python中的变量有些困惑。
这是我目前对它们的了解:
Python变量是对对象(可变或不可变)的引用(或指针?)。当我们有类似的内容时num = 5
,不可变对象5
将在内存中的某个位置创建,而名称-
对象引用对num
将在某个命名空间中创建。当我们拥有时a =
num
,不会复制任何内容,但是现在两个变量都引用相同的对象,a
并被添加到相同的名称空间。
这就是我的书《 用Python自动处理无聊的东西》 ,令我感到困惑。由于它是一本新手书籍,因此没有提及对象,名称空间等,而是尝试解释以下代码:
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
它提供的解释与C
++书籍的解释完全相同,由于我们正在处理对象的引用/指针,对此我并不满意。因此,在这种情况下,我想在第三行中,由于整数是不可变的,spam
因此正在为内存中的其他位置分配一个全新的指针/引用,即,它最初指向的内存没有被修改。因此,我们已经cheese
提到了由引用的初始对象spam
。这是正确的解释吗?
-
作为C ++开发人员,您可以将Python变量视为指针。
因此,在编写时
spam = 100
,这意味着您“分配了指针”(以前指向该对象42
)以指向该对象100
。较早时,
cheese
被分配指向与所指对象相同的对象spam
,该对象恰好42
在那时。由于您尚未修改cheese
,因此仍指向42
。在这种情况下,不变性与它无关,因为指针分配不会更改所指向对象的任何内容。
-
将一个原始变量分配给另一个原始变量,而将参考变量分配给另一个
2021-01-30 关注 0 浏览126 1答案
-
Javascript“变量”:如何基于另一个变量分配变量?
2021-02-02 关注 0 浏览89 1答案
-
如果在另一个df中的日期范围之间,python将值分配给pandas df
2021-01-29 关注 0 浏览89 1答案
-
如果两个变量指向同一个对象,为什么不重新分配一个变量会影响另一个变量?
2021-01-29 关注 0 浏览133 1答案
-
GSON +休眠:导致“一个实体副本已分配给另一个实体”的相同对象
2021-02-01 关注 0 浏览125 1答案
-
在Javascript中将多个变量分配给相同的值?
2022-07-28 关注 0 浏览10 1答案
-
了解Spring事务-当一个事务方法调用另一个事务方法时会发生什么?
2021-02-02 关注 0 浏览165 1答案
-
在Python中从一个函数调用变量到另一个函数
2021-01-29 关注 0 浏览103 1答案
-
为什么分配给一个空列表而不分配给一个空元组是有效的?
2021-01-29 关注 0 浏览73 1答案
-
在python中将一个列表插入另一个列表的语法是什么?
2021-01-29 关注 0 浏览108 1答案