【问题标题】:Determining a variable's type is NoneType in python [duplicate]在python中确定变量的类型是NoneType [重复]
【发布时间】:2017-03-25 23:56:01
【问题描述】:

我想检查一个变量是否属于NoneType 类型。对于其他类型,我们可以执行以下操作:

    type([])==list

但是对于NoneType,这种简单的方法是不可能的。也就是说,我们不能说type(None)==NoneType。有替代方法吗?为什么这对于某些类型是可能的,而对于其他类型则不是?谢谢。

【问题讨论】:

  • 只需使用x is None。检查类型没有任何好处,因为在任何情况下都不会出现除 None 类型的 NoneType 之外的任何对象。
  • 我认为这个想法是能够为任何 x,y 传递 type(x) == y,而不是为 x is None 添加特殊情况。注意:你也可以x == None.
  • @ZeroPiraeus 见上文,以防您没有收到通知。

标签: python python-3.x types nonetype


【解决方案1】:

NoneType 只是碰巧不会自动在全局范围内。这不是一个真正的问题。

>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True

在任何情况下进行类型检查都是不寻常的。相反,您应该测试x is None

【讨论】:

  • 谢谢,我想这个解决方案和@JeanFrancoisFabre 的解决方案都可以完成这项工作。我们是否有理由更喜欢其中之一(速度、风格等)?
  • @splinter 我不知道。
【解决方案2】:

当然可以。

type(None)==None.__class__

True

【讨论】:

    猜你喜欢
    • 2011-02-08
    • 2012-02-21
    • 1970-01-01
    • 2010-09-28
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多