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
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
通常我们写:
?
?
?
其中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
相关文章推荐
- js中的"=="和equals()以及is()三者的区别
- title:this is && title:(this is)&&title:"this is"的区别
- js中的"=="和equals()以及is()三者的区别
- "=="& .equals() & TextUtils.isEmpty(str) & str.isEmpty() 之间的区别
- C语言中值得深入知识点----数组做函数参数、数组名a与&a区别、数组名a的"数据类型"
- Python学习之"is" 与 "==" 的区别详解
- js中的"=="和equals()以及is()三者的区别
- python中除法 “/” 和 "//"的区别
- Python中is与 "=="的区别
- [java] "Hello"和new String("Hello")产生String对象的区别
- zz"Who do you think is the best coder, and why?"zz
- "初恋女友"与"现任女友"的区别
- 用_T("")和直接用""的区别
- VB中 0、""(空字串)、Null、Empty、与 Nothing 的区别
- 有感"Java is not platform-independent, it is the platform"
- C#中NULL,"",DBNULL,String.Empty,Convert.IsDBNull()的区别
- What the heck is "H5N1"?
- cout<<endl;与cout<<"/n";的区别
- [翻译] Effective C++, 3rd Edition, Item 32: 确保 public inheritance 模拟 "is-a"(上)
- "file"与"virtual"的区别