0


python中的None与False

进行逻辑判断(比如if)时,Python当中等于False的值并不只有False一个,它也有一套规则。对于基本类型来说,基本上每个类型都存在一个值会被判定为False。大致是这样:

  • 布尔型,False表示False,其他为True
  • 整数和浮点数,0表示False,其他为True
  • 字符串和类字符串类型(包括bytes和unicode),空字符串表示False,其他为True
  • 序列类型(包括tuple,list,dict,set等),空表示False,非空表示True
  • None永远表示False

自定义类型则服从下面的规则:

  • 如果定义了__nonzero__()方法,会调用这个方法,并按照返回值判断这个对象等价于True还是False
  • 如果没有定义__nonzero__方法但定义了__len__方法,会调用__len__方法,当返回0时为False,否则为True(这样就跟内置类型为空时对应False相同了)
  • 如果都没有定义,所有的对象都是True,只有None对应False

None和False它们的主要区别是在语义上:False和True对应,它作为布尔类型用来描述逻辑中“假”这个概念;None和“存在元素”相对应,“存在元素”反过来为“不存在元素”,也就是None。另外,None是NoneType对象类型的唯一值。False是bool类型的值。在python中,每一个对象均有一个bool值。像空字符串、空列表、空字典这些对象的bool值就是False,而None对象的bool值为False。

参考链接:https://www.zhihu.com/question/48707732/answer/112233903

标签: python None False

本文转载自: https://blog.csdn.net/qq_38048756/article/details/116977860
版权归原作者 馋学习的身子 所有, 如有侵权,请联系我们删除。

“python中的None与False”的评论:

还没有评论