在初步接触 python 时,我们就听过一句话:“在 python 中万物皆对象”。但是这个具体是如何体现的,我们却没有好好的去了解过。
所以 老Amy 就准备写一篇文章,好好聊聊这一块~
那首先,我们应该了解对象具备哪些特性。有的朋友会说出肤白貌美等等一系列相关的成语。但是,python 中对象的特性如下:
- 任何对象都具有内存地址
- 任何对象都具有类型
- 任何对象都具有值
所以接下来,我们依次的来了解这三点。
任何对象都具有内存地址
在 python 中我们可以使用内置函数 id()
来查看某个对象的内存地址(特别注意,此处我们只针对 CPython 的实现)
那我们是否能说 内存地址 是 唯一 且 不变 的呢?答案是否定的。
因为大家需要明确一点,就是 对象 是有 生命周期 (也就是 对象 从 创建 到被 回收 的整个过程)的,而在整个对象的生命周期内,对象的内存地址可以说具有 唯一性 与 不变性。
但是在整个 程序生命周期内, 却是不一定的。比如我们看以下代码:
In [1]: class MyClass:
...: