Python中的对象包含三要素:id、type、value,其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。
is判断的是a对象是否就是b对象,是通过id来判断的;
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。
python对变量是否为None的判断
python对变量是否为None的判断,有三种主要的写法:
第一种是if x is None;
第二种是 if not x:;
第三种是if not x is None(这句这样理解更清晰if not (x is None)) 。
在Python中 None, False, 空字符串””, 0, 空列表[], 空字典{}, 空元组()都相当于False 。
foo is None 和 foo == None的区别
>>> class foo:
def __eq__(self, other):
return True >>> f = foo()
>>> f == None
True
>>> f is None
False >>> list1 = [1, 2, 3]
>>> list2 = [1, 2, 3]
>>> list1==list2
True
>>> list1 is list2
False
另外:(ob1 is ob2) 等价于 (id(ob1) == id(ob2))