None 和 python 3 中的 False 有什么区别? (在布尔意义上)
What is the difference between None and False in python 3? (in a boolean sense)
有时 python 似乎将它们视为相同,而其他时候使用 False 时 returns False 但 returns 与 None 无关。在其他语言中,它的行为似乎与 null 非常不同。
一些具体的例子是:
True
和 None
returns 无
False
和 None
returns False
Python 中的不同值可以描述为“真实”或“虚假”,即使它们不是 Boolean
值,这意味着它们被解释为 True
或False
在需要 Boolean
值的情况下(例如 if
条件)。根据 documentation 中的定义,Python 中的每个值,无论类型如何,都被解释为 True
除了 以下值(它们是解释为 False
):
- 常量定义为假:
None
和 False
。
- 任何数字类型的零:
0
、0.0
、0j
、Decimal(0)
、Fraction(0, 1)
- 空序列和集合:
''
、()
、[]
、{}
、set()
、range(0)
针对你的具体情况,采用if
的情况,声明如下:
if None:
# some code here
在功能上等同于:
if False:
# some code here
这是因为,如上表所示,为了满足 if
条件,值 None
会自动转换为 False
。这就是所谓的“语法糖”,它是语言的一个功能,可以让开发人员的生活更轻松。
但是,仅仅因为 None
在这种特定情况下被 解释为 为 False
,这并不意味着这两个值彼此相等.这是因为 False
是 True/False 对的一部分,表示二进制概念,如“yes/no”、“on/off”等。None
另一方面,代表nothing的概念。值为 None
的变量意味着它们根本没有值。比喻成False
,False
就好像回答别人说“不”,None
就好像根本不回答。
作为一个更实际的例子,请看下面的代码片段:
if None == False:
# code in here would not execute because None is not equal to False
有时 python 似乎将它们视为相同,而其他时候使用 False 时 returns False 但 returns 与 None 无关。在其他语言中,它的行为似乎与 null 非常不同。
一些具体的例子是:
True
和None
returns 无False
和None
returnsFalse
Python 中的不同值可以描述为“真实”或“虚假”,即使它们不是 Boolean
值,这意味着它们被解释为 True
或False
在需要 Boolean
值的情况下(例如 if
条件)。根据 documentation 中的定义,Python 中的每个值,无论类型如何,都被解释为 True
除了 以下值(它们是解释为 False
):
- 常量定义为假:
None
和False
。 - 任何数字类型的零:
0
、0.0
、0j
、Decimal(0)
、Fraction(0, 1)
- 空序列和集合:
''
、()
、[]
、{}
、set()
、range(0)
针对你的具体情况,采用if
的情况,声明如下:
if None:
# some code here
在功能上等同于:
if False:
# some code here
这是因为,如上表所示,为了满足 if
条件,值 None
会自动转换为 False
。这就是所谓的“语法糖”,它是语言的一个功能,可以让开发人员的生活更轻松。
但是,仅仅因为 None
在这种特定情况下被 解释为 为 False
,这并不意味着这两个值彼此相等.这是因为 False
是 True/False 对的一部分,表示二进制概念,如“yes/no”、“on/off”等。None
另一方面,代表nothing的概念。值为 None
的变量意味着它们根本没有值。比喻成False
,False
就好像回答别人说“不”,None
就好像根本不回答。
作为一个更实际的例子,请看下面的代码片段:
if None == False:
# code in here would not execute because None is not equal to False