python is和==的区别是什么?

众所周知,我们的python中有很多的运算符,其中有的是经常使用的有的是不常使用的,其中比较常用的有is==然后呢,他们其实有的时候是通用的,都是作为相等比值来使用的。但是有的时候,他们并不能划等号。
先上一下代码。
pythonis和==的区别

a = 257

b = 257

print(a is b)

print(a == b)

#out1: False

#out2: True
我们可以看到,虽然都定义的是257,但是我们通过print显示的时候,会发现is是false,==是true。这是为什么呢?
我们首先要先了解一下python中对象包含的三个基本要素。分别是id(身份标识),type(对象类型),value(对象值)。
然后我们再看一下is和==的介绍。

is —- 比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。

== —- 比较的是两个对象的内容是否相等,默认会调用对象的eq()方法。

== 是 python中标准操作符的比较操作符,它是用来比较判断两个对象的 value (值)
通过==我们可以得到这两个对象的值是否相等。

a = ‘cheesezh’

b = ‘cheesezh’

print(a == b)

#True

is 也被称为同一性运算符,它是比较判断对象间的唯一身份标识,也就是 id 是否相同。
Python程序是由代码块构成的,其中代码块是作为程序最小的基本单位来执行,代码块是一个模块文件、一个函数体、一个类、交互式命令中的单行代码,Python出于对性能的考虑,但凡是不可变对象,在同一个代码块中的对象,只有是值相同的对象,就不会重复创建,而是直接引用已经存在的对象。

通过以上的内容,可以得到的结论是,同一个代码块中的不可变的对象,只要他们的值是相等的就不会重复创建新的对象。而是通过引用等方法来调用同一地址的值。小整数对象[-5,256]是全局解释器范围内可以被重复使用的对象,永远不会被回收。
python is和==的区别是什么

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!