这是我学习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
。这是正确的解释吗?