ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

区分 None 和空列表 []

区分 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
返回列表