Determining a variable's type is NoneType in python
我想检查一个变量是否是NoneType类型。对于其他类型,我们可以执行以下操作:
但是对于NoneType来说,这种简单的方法是不可能的。也就是说,我们不能说type(None)==NoneType。有别的办法吗?为什么这对某些类型是可能的,而对其他类型是不可能的?谢谢您。
- 只需使用x is None。检查类型没有任何好处,因为在任何情况下都不会有除NoneType类型的None以外的任何对象。
- 我认为这个想法是能够通过任何x,y的type(x) == y,而不是增加x is None的特殊情况。注:也可以做x == None。
- @Zeropiraeus见上文,以防您未收到通知。
NoneType恰好不在全球范围内。这不是问题。
1 2 3 4 5 6
| >>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True |
在任何情况下,进行类型检查都是不常见的。相反,您应该测试x is None。
- 谢谢,我想这个解决方案和@jeanfrancoisfabre的解决方案都可以。我们是否有理由喜欢其中一个而不是另一个(速度、风格等)?
- @我不知道会分裂。
当然可以。
1 2 3
| type(None)==None.__class__
True |
号