类型比较的时候
要使用
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