None是python中的一个常量,他有自己的数据类型NoneType,表示一个空对象,类似js中的nullNone和任意对象比较都是False,除了他自己本身"" 、[]、 {} 、()、None、 0、False# 尽量用
if not obj:
pass
# 尽量不要用
if obj != []:
pass
is None 与 == None弄懂这两个的区别,首先我们需要先弄懂 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__方法被重写了,那么导致的结果可能就不同了