您的位置:首页 > 编程语言 > Python开发

python 小知识点 "==" 与 "is"的区别

2014-08-15 18:27 681 查看
python有个特点是作用域用冒号表示,不是大括弧,所以你看到很多语句比如if else for while后面都有一个冒号。

Python 2 has 31 keywords:

and del from not while

as elif global or with

assert else if pass yield

break except import print

class exec
in raise

continue finally is return

def for lambda try


通常我们写:

?
这个写法与以下的写法有何区别呢?

?
is当比较的是相同的对象实例时总是返回True。而==则完全决定于__eq__()方法的实现。例如:

?
Python中的对象包含三要素:id、type、value。

其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。

is判断的是a对象是否就是b对象,是通过id来判断的。

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。

看下面的例子:



"==" 与 "is"的区别:"=="是比较内容相当,如变量值相等;"is"是比较对象的id是否相等。下面是测试:

>>> a = 1

>>> b = 1

>>> id(a)

505300120

>>> id(b)

505300120

>>> print(a == b)

True

>>> print(a is b)

True

>>> f1 = 1.0

>>> f2 = 1.0

>>> id(f1)

11372688

>>> id(f2)

11372608

>>> print(f1 == f2)

True

>>> print(f1 is f2)

False
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: