2024-04-26 11:33:09 发布
网友
基本上我想这样做:
obj = 'str' type ( obj ) == string
我试过:
type ( obj ) == type ( string )
但没用。
另外,其他类型的呢?例如,我无法复制NoneType。
NoneType
isinstance作品:
isinstance
if isinstance(obj, MyClass): do_foo(obj)
但要记住:如果它看起来像鸭子,如果听起来像鸭子,那么它就是鸭子。
编辑:对于“无”类型,您只需执行以下操作:
if obj is None: obj = MyClass()
isinstance()
在您的情况下,isinstance("this is a string", str)将返回True。
isinstance("this is a string", str)
True
你可能还想读这个:http://www.canonical.org/~kragen/isinstance/
首先,避免所有类型的比较。它们是非常非常不必要的。有时,它们有助于检查函数中的参数类型——即使这很少见。错误的类型数据将引发异常,这就是您所需要的全部。
所有的基本转换函数都将映射为等于类型函数。
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 )
顺便说一句,不需要这种类型的检查。None是NoneType的唯一实例。None对象是Singleton。检查一下没有
variable is None
顺便说一句,一般情况下不要使用上述方法。使用普通异常和Python自己的自然多态性。
isinstance
作品:但要记住:如果它看起来像鸭子,如果听起来像鸭子,那么它就是鸭子。
编辑:对于“无”类型,您只需执行以下操作:
在您的情况下,
isinstance("this is a string", str)
将返回True
。你可能还想读这个:http://www.canonical.org/~kragen/isinstance/
首先,避免所有类型的比较。它们是非常非常不必要的。有时,它们有助于检查函数中的参数类型——即使这很少见。错误的类型数据将引发异常,这就是您所需要的全部。
所有的基本转换函数都将映射为等于类型函数。
还有其他几个案子。
顺便说一句,不需要这种类型的检查。None是NoneType的唯一实例。None对象是Singleton。检查一下没有
顺便说一句,一般情况下不要使用上述方法。使用普通异常和Python自己的自然多态性。
相关问题 更多 >
编程相关推荐