导入
Python中的对象和变量
复习一下 Python 中对象和变量的一般工作原理。
如引言中所述,Python 中的函数是一等对象。这意味着函数是可被存储在变量中、作为列表或其他数据结构中的引用项、并能作为参数传入函数或作为返回值从函数中传出的对象。本章将更详细地探讨这一点。
Python 中的对象与变量
在讨论函数对象之前,我们先快速回顾一下 Python 中对象和变量的一般工作原理。
考虑以下简单的 Python 代码:
1a = 'apple' 2b = 'pear'
你可能会粗略地说,字符串 'apple' 存储在变量 a 中,字符串 'pear' 存储在变量 b 中。但这并不准确。实际上,这两个字符串都是 Python 在内存中存储的对象。变量 a 和 b 只是保存了对这些对象的引用,它们指向内存中的这些对象。下图展示了这一关系:
...
变量 'a' 和 'b' 指向字符串对象
这一点非常重要,因为当执行以下操作时会发生什么:
1a = b
此时,a 和 b 都指向值为 'pear' 的字符串对象,但关键在于,a 和 b 实际上都引用了内存中的同一个对象,如下图所示:
...
变量 'a' 和 'b' 都指向内存中的同一对象
之前的 'apple' 字符串仍然存在于内存中,但已无法再通过任何方式访问。Python 最终会释放其所占的内存,以便用于其他用途。
我们将在后续关于不可变数据类型的章节中再次讨论这一点。