分享
为什么问答平台  ›  专栏  ›  技术社区  ›  BeforeFlight

python(none)为none,但()不是none[重复] - Python (None) is None but () is not None [duplicate]

  •  -1
  • BeforeFlight  · 技术社区  · 1 周前

    这个问题已经有了答案:

    答案应该很简单,应该已经是答案了,但我找不到。

    ()           is None # False
    (None)       is None # True
    (None, None) is None # False
    

    所有这些检查的结果都是意料之中的,但看起来很奇怪。所以对于问题:

    1. 为什么是 (None) is None -是因为开箱吗?
    2. 为什么呢? () is not None ?即如果 (None) 已经 None 为什么? () 不是吗?
    2 回复  |  直到 1 周前
        1
  •  3
  •   Finomnis    1 周前
    () is not None
    

    因为 () 是一个空元组,而不是一个。

    (None, None) is not None
    

    因为 (None, None) 是一个有两个的元组 None 元素,显然与元素不同 没有 元素。

    (None) is None
    

    因为 (None) 在图普尔。这些括号用于表示数学分组/计算顺序,在这种情况下可以省略,从而 None is None .

    (None,) is not None
    

    这可能是您试图创建的,一个包含一个 没有 元素。

        2
  •  1
  •   Goyo    1 周前
    1. 因为加括号和表达式不会改变它的值。

    2. 为什么要这样 None ? () 实际上是一个空元组。