您当前的位置:生活大视野资讯正文

Python判别变量是否是None的三种写法

放大字体  缩小字体 2019-11-07 20:42:12  阅读:6482 作者:责任编辑NO。杜一帆0322

代码中经常会有变量是否为None的判别,有三种首要的写法:

第一种是if x is None;

第二种是 if not x:;

第三种是if not x is None(这句这样了解更明晰if not (x is None)) 。

假如你觉得这样写没啥差异,那么你可就要当心了,这儿面有一个坑。先来看一下代码:

在python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False ,即:

代码如下:

因而在运用列表的时分,假如你想区别x==[]和x==None两种状况的话, 此刻if not x:将会呈现一些显着的反常问题:

或许你是想判别x是否为None,可是却把x==[]的状况也判别进来了,此种状况下将无法区别。

关于习惯于运用if not x这种写法的pythoner,有必要清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判别没有影响才行。

而关于if x is not None和if not x is None写法,很显着前者更明晰,而后者有可能使读者误解为if (not x) is None,因而引荐前者,一起这也是谷歌引荐的风格

定论:

if x is not None是最好的写法,明晰,不会呈现过错,今后坚持运用这种写法。 运用if not x这种写法的条件是:有必要清楚x等于None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()时对你的判别没有影响才行。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!