![](/img/trans.png)
[英]What is the difference between None and boolean (True, False) in python's default argument values?
[英]What is the difference between None and False in python 3? (in a boolean sense)
有时 python 似乎将它们视为相同,而其他时候它在使用 False 时返回 False,但在 None 时不返回任何内容。 在其他语言中,它的行为似乎与 null 非常不同。
一些具体的例子是:
True
和None
什么也不返回False
和None
返回False
Python 中的不同值可以被描述为“真”或“假”,即使它们不是Boolean
值,这意味着它们在需要Boolean
值(例如if
条件)的情况下被解释为True
或False
。 正如文档中定义的那样,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
这是因为,如上面的列表所示,值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.