基本上我想这样做:
obj = 'str'
type ( obj ) == string
我试着:
type ( obj ) == type ( string )
但这并没有起作用。
还有,其他类型的呢?例如,我无法复制NoneType。
基本上我想这样做:
obj = 'str'
type ( obj ) == string
我试着:
type ( obj ) == type ( string )
但这并没有起作用。
还有,其他类型的呢?例如,我无法复制NoneType。
当前回答
Type在某些类上不起作用。如果你不确定对象的类型,使用__class__方法,如下所示:
>>>obj = 'a string'
>>>obj.__class__ == str
True
也请参阅这篇文章- http://www.siafoo.net/article/56
其他回答
isinstance工作原理:
if isinstance(obj, MyClass): do_foo(obj)
但是,请记住:如果它看起来像鸭子,如果它听起来像鸭子,它就是鸭子。
编辑:对于None类型,你可以简单地做:
if obj is None: obj = MyClass()
isinstance()
在你的例子中,isinstance("this is a string", str)将返回True。
你可能还想读这个:http://www.canonical.org/~kragen/isinstance/
因为type返回一个对象,所以可以使用object.name访问对象的名称
例子:
years = 5
user = {'name':'Smith', 'age':20}
print(type(a).__name__)
输出:“int”
print(type(b).__name__ )
输出:“东西”
使用str代替string
type ( obj ) == str
解释
>>> a = "Hello"
>>> type(a)==str
True
>>> type(a)
<type 'str'>
>>>
Type在某些类上不起作用。如果你不确定对象的类型,使用__class__方法,如下所示:
>>>obj = 'a string'
>>>obj.__class__ == str
True
也请参阅这篇文章- http://www.siafoo.net/article/56