10
在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。这是正确的解释吗?