python中判断为None


python中经常会有判断一个变量是否为None的情况,这里列举三种方式:

if not x

if x is None

if not x is None 

 

***********************************************************************************

遇到要判断一个变量为None的情况,当时便考虑是用 is 还是 == 

那么 x is None 和 x == None有什么区别呢???

 

is比较的是id值是否相同,即是否为同一内存地址;== 仅比较值是否相等 。

 

None 表示的是一个对象,定义为 Nonetype 的对象。

x is None 表示的是x 的内存地址 与 None 一致,换言之:如果x是一个对象但是对象属性定义为None的话,依然返回False。因为有对象,即有对应的地址空间。

如果 x是一个对象的属性(变量),x 的值为None,则 is None返回True。(python中None是一个特殊的常量,“不同的”None的id是一样的。)

x==None 表示 对象x等于None,相当于调用了__eq()__方法。当x为None时,自然返回True。

 

所以当判断数据结构中的某一值是否为None时,is None会更好一些。

 

做一棵小草,谁也撼动不了………

 

如果您觉得本篇文章还不错,欢迎点赞,转发分享,感谢(*^_^*)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM