Python中is和==对象比较有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3120个文字,预计阅读时间需要13分钟。
在Python中,对象ID是我们学习基础时未曾听闻的概念。Python中也有类似C或C++中的指针,但它是怎样的呢?先简单谈谈指针这个概念,一提到指针,可能许多初学C和C++的人都会感到害怕(包括我自己)。
1 Python 中的对象 ID
我们在学习基础的时候没听说 Python 有 C 或 C++ 中的指针啊,Python 中指针是什么?
先把指针这个概念放一放,一提到指针可能初学 C 和 C++ 的人都害怕(本人也害怕),先来理解一下 Python 里面对象的本质。
比如下面的代码,当声明 a = 100 和 b = 100 的时候,能发现 id(a) == id(b),为什么 a 和 b 的 id 值是一样的呢?
>>> a = 100>>> b = 100
>>> id(a)
4343720720
>>> id(b)
4343720720
>>>
我们来看一下这个图:
利用上图来打一个比喻,可能不是很准确但方便我们进行理解。如果计算机被当成是一栋楼,那么内存空间就相当楼中的每个房间,内存地址就是这个房间的门牌号,这个房间内可以存储数据(比如数字 100 ,数字 10 或者其他类型)。
假如有一天,来了个要租房的小 a,小 a 说:“我看中了门牌号为(内存地址 4343720720 )的这个房间”,并且放心的租用了这个房,所以 a = 100。小 a就住在了这个房间里,当我们查询 id(a)的时候,计算机就返回给我们这个房间的门牌号(也就是内存地址 4343720720 )。
本文共计3120个文字,预计阅读时间需要13分钟。
在Python中,对象ID是我们学习基础时未曾听闻的概念。Python中也有类似C或C++中的指针,但它是怎样的呢?先简单谈谈指针这个概念,一提到指针,可能许多初学C和C++的人都会感到害怕(包括我自己)。
1 Python 中的对象 ID
我们在学习基础的时候没听说 Python 有 C 或 C++ 中的指针啊,Python 中指针是什么?
先把指针这个概念放一放,一提到指针可能初学 C 和 C++ 的人都害怕(本人也害怕),先来理解一下 Python 里面对象的本质。
比如下面的代码,当声明 a = 100 和 b = 100 的时候,能发现 id(a) == id(b),为什么 a 和 b 的 id 值是一样的呢?
>>> a = 100>>> b = 100
>>> id(a)
4343720720
>>> id(b)
4343720720
>>>
我们来看一下这个图:
利用上图来打一个比喻,可能不是很准确但方便我们进行理解。如果计算机被当成是一栋楼,那么内存空间就相当楼中的每个房间,内存地址就是这个房间的门牌号,这个房间内可以存储数据(比如数字 100 ,数字 10 或者其他类型)。
假如有一天,来了个要租房的小 a,小 a 说:“我看中了门牌号为(内存地址 4343720720 )的这个房间”,并且放心的租用了这个房,所以 a = 100。小 a就住在了这个房间里,当我们查询 id(a)的时候,计算机就返回给我们这个房间的门牌号(也就是内存地址 4343720720 )。

