None 表示空 不同于 空字符串 空的列表 0 False
類型不同棚潦,值不同
print(type(None)) <class 'NoneType'>None是None類
a=''
b=False
c=[]
print(a==None) #False
print(b==None) #False
print(c==None) #False #值不相等
深入
def fun():
return None
a = fun()
if not a:
print('S')
else:
print('F')
if a is None:
print('S')
else:
print('F')
#S
#S
def fun():
return None
a = []
if not a:
print('S')
else:
print('F')
if a is None:
print('S')
else:
print('F')
#S
#F
類中默認(rèn)非空
class Test():
pass
test = Test()
if test:
print('S')
else:
print('F')
#S
類中為空的情況
class Test():
def __len__(self):
return 0 #(只能為int類型)
test = Test()
if test:
print('S')
else:
print('F')
#F
class Test():
def __len__(self):
return 0 #(只能為int類型)
test = Test()
print(bool(None)) #False
print(bool({}))#False
print(bool([]))#False
print(bool(test))#False
由bool決定True or False,與len無關(guān)
(即print 只有 bool call True,或者bool call False ))
class Test():
def __bool__(self):
print('bool called')
return False#(/True)
def __len__(self):
print('len called')
return True #(只能為int類型)
print(bool(Test()))
#bool called
#False#(/True)