[Python]类型比较(type()和isinstance())

类型比较的时候

要使用

isinstance(item, str)

不用

type(item) == str

区别在于:

type()不会认为子类是一种父类类型;

isinstance()会认为子类是一种父类类型;

class FOO():
    pass
class BAR(FOO):
    pass
print(type(FOO()) == FOO)
print(type(BAR()) == FOO)
print(isinstance(FOO(), FOO)) 
print(isinstance(BAR(), FOO))

最后的回显为:

(PythonVirtualEnv_3100) PS D:\PythonVirtualEnv> & d:/PythonVirtualEnv/PythonVirtualEnv_3100/Scripts/python.exe d:/PythonVirtualEnv/PythonVirtualEnv_391/tmp.py
True
False
True
True
原文地址:https://www.cnblogs.com/LeeCookies/p/15513642.html