![區(qū)分 None 和空列表 []](http://pic.xiahunao.cn/yaotu/區(qū)分 None 和空列表 [])
區(qū)分None和空列表[]二者完全不是同一個(gè)東西是兩個(gè)完全不同的對(duì)象。aNoneb[]print(aisb)# Falseprint(type(a))# class NoneTypeprint(type(b))# class listNoneNone是NoneType類型代表什么都沒有、空對(duì)象。變量等于None代表這個(gè)變量沒有綁定任何有效對(duì)象。lstNone# lst 這個(gè)變量啥也沒指向不是列表lst[0]# 直接報(bào)錯(cuò)根本不是列表不能取下標(biāo)空列表[]是實(shí)實(shí)在在的列表對(duì)象(list類型)只不過里面一個(gè)元素都沒有。lst[]print(len(lst))# 0長(zhǎng)度為0lst[0]# 報(bào)錯(cuò)因?yàn)槔锩鏇]有元素下標(biāo)0不存在not xxx的規(guī)則布爾判斷notNone→Truenot[]→Truenot[1,2]→Falsenot0→Truenot10→Falsenot input_listNone和空列表[]兩種情況都會(huì)命中。三種寫法對(duì)比#寫法1只判斷None空列表會(huì)崩ifinput_listisNone:#寫法2判斷是否是空列表但是傳None會(huì)崩iflen(input_list)0:#寫法3同時(shí)兼容 None 和 []推薦ifnotinput_list:returnNone