简介
None
是python中的一个常量,他有自己的数据类型NoneType
,表示一个空对象,类似js中的null
None
和任意对象比较都是False
,除了他自己本身
判断数据为空
- 一般判断数据为空的时候,我们尽量使用隐式的判断
- 在python中,只要数据为空一般都会转化为False,如
""
、[]
、{}
、()
、None
、0
、False
# 尽量用
if not obj:
pass
# 尽量不要用
if obj != []:
pass
is None
与 == None
弄懂这两个的区别,首先我们需要先弄懂 is
与 ==
is
与 ==
- 一般is用来比较比较地址是否相同
==
则用来比较值是否相同
- 当我们调用
==
来进行比较的时候,他其实是调用了一个魔术方法__eq__
,这个方法我们可以重写,且函数返回的值就是比较后的值,我们可以看下面的例子
class Foo():
def __eq__(self, __o: object) -> bool:
return True
a = Foo()
b = None
print(a == b) # True
print(a == "c") # True
print(b is None) # True
print(b == None) # true
print(a is b) #False
- 我们和
None
进行比较的时候,一般用is
,如果变量指向的是None,那么他们最终的地址一定相同 - 大多数情况下,
is None
和== None
返回的结果是相同的,如果__eq__
方法被重写了,那么导致的结果可能就不同了