如何比较Python中的对象的类型?

基本上我想这样做:

obj = 'str'
type ( obj ) == string

我试过了:

type ( obj ) == type ( string )

并没有奏效。

另外,其他类型呢? 例如,我无法复制NoneType


isinstance()

在你的情况下, isinstance("this is a string", str)将返回True

您可能还想阅读:http://www.canonical.org/~kragen/isinstance/


isinstance作品:

if isinstance(obj, MyClass): do_foo(obj)

请记住:如果它看起来像一只鸭子,并且它听起来像一只鸭子,那它就是一只鸭子。

编辑:对于None类型,你可以简单地做:

if obj is None: obj = MyClass()

首先,避免所有类型的比较。 他们非常非常少需要。 有时,它们有助于检查函数中的参数类型 - 即使这很少见。 错误的类型数据会引发异常,这就是您所需要的。

所有基本的转换函数将映射为与类型函数相同。

type(9) is int
type(2.5) is float
type('x') is str
type(u'x') is unicode
type(2+3j) is complex

还有其他一些情况。

isinstance( 'x', basestring )
isinstance( u'u', basestring )
isinstance( 9, int )
isinstance( 2.5, float )
isinstance( (2+3j), complex )

没有,BTW,从来不需要任何这种类型的检查。 None是NoneType的唯一实例。 None对象是一个Singleton。 只需检查无

variable is None

顺便说一句,一般不要使用上述内容。 使用普通的异常和Python自己的自然多态。

链接地址: http://www.djcxy.com/p/54229.html

上一篇: How to compare type of an object in Python?

下一篇: python: how to identify if a variable is an array or a scalar