Difference between isinstance and type in python
本问题已经有最佳答案,请猛点这里访问。
我在网上看了一些代码,看到了一些我不习惯的代码。最引起我注意的是:
1 2 | if not isinstance(string, str): #dosomething |
如果我改为这样做会有什么不同:
1 2 | if type(string)!=str: #dosomething |
首先看看这里所有的好答案。
type()只返回对象的类型。鉴于,isInstance():
如果对象参数是ClassInfo参数或其(直接、间接或虚拟)子类的实例,则返回true。
例子:
1 2 3 4 5 6 7 8 9 10 | class MyString(str): pass my_str = MyString() if type(my_str) == 'str': print 'I hope this prints' else: print 'cannot check subclasses' if isinstance(my_str, str): print 'definitely prints' |
印刷品:
1 2 | cannot check subclasses definitely prints |