繁体   English   中英

python 3中None和False有什么区别? (在布尔意义上)

[英]What is the difference between None and False in python 3? (in a boolean sense)

有时 python 似乎将它们视为相同,而其他时候它在使用 False 时返回 False,但在 None 时不返回任何内容。 在其他语言中,它的行为似乎与 null 非常不同。

一些具体的例子是:

  • TrueNone什么也不返回
  • FalseNone返回False

Python 中的不同值可以被描述为“真”或“假”,即使它们不是Boolean值,这意味着它们在需要Boolean值(例如if条件)的情况下被解释为TrueFalse 正如文档中定义的那样,Python 中的每个值,无论类型如何,都被解释为True除了以下值(被解释为False ):

  • 定义为 false 的常量: NoneFalse
  • 任何数字类型的零: 0 , 0.0 , 0j , Decimal(0) , Fraction(0, 1)
  • 空序列和集合: ''()[]{}set()range(0)

针对你的具体情况,使用if情况,如下语句:

if None:
    # some code here

在功能上等同于:

if False:
    # some code here

这是因为,如上面的列表所示,值None会自动转换为False以用于if条件。 这就是所谓的“语法糖”,它是语言的一个特性,可以让开发人员的生活更轻松。

但是,仅仅因为None在这种特定情况下被解释False ,这并不意味着这两个值彼此相等。 这是因为False是 True/False 对的一部分,表示“是/否”、“开/关”等二进制概念。另一方面, None表示nothing的概念。 值为None的变量意味着它们根本没有值。 以隐喻的形式将其与False进行比较, False就像回答某人说“不”,而None就像根本不回答他们。

作为一个更实际的示例,请参见以下代码片段:

if None == False:
    # code in here would not execute because None is not equal to False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM