Python判断变量是否是None写法代码实例
代码中经常会有变量是否为None的判断,有三种主要的写法:
- 第一种是`ifxisNone`;
- 第二种是`ifnotx:`;
- 第三种是`ifnotxisNone`(这句这样理解更清晰`ifnot(xisNone)`)。
如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:
>>>x=1 >>>notx False >>>x=[1] >>>notx False >>>x=0 >>>notx True >>>x=[0]#Youdon'twanttofallinthisone. >>>notx False
在python中None,False,空字符串"",0,空列表[],空字典{},空元组()都相当于False,即:
notNone==notFalse==not''==not0==not[]==not{}==not()
因此在使用列表的时候,如果你想区分x==[]和x==None两种情况的话,此时`ifnotx:`将会出现问题:
>>>x=[] >>>y=None >>> >>>xisNone False >>>yisNone True >>> >>> >>>notx True >>>noty True >>> >>> >>>notxisNone >>>True >>>notyisNone False >>>
也许你是想判断x是否为None,但是却把`x==[]`的情况也判断进来了,此种情况下将无法区分。
对于习惯于使用ifnotx这种写法的pythoner,必须清楚x等于None,False,空字符串"",0,空列表[],空字典{},空元组()时对你的判断没有影响才行。
而对于`ifxisnotNone`和`ifnotxisNone`写法,很明显前者更清晰,而后者有可能使读者误解为`if(notx)isNone`,因此推荐前者,同时这也是谷歌推荐的风格
结论:
`ifxisnotNone`是最好的写法,清晰,不会出现错误,以后坚持使用这种写法。
使用ifnotx这种写法的前提是:必须清楚x等于None,False,空字符串"",0,空列表[],空字典{},空元组()时对你的判断没有影响才行。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。