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