Python 比较变量的类型

Python 比较变量的类型,python,types,Python,Types,我有一个变量x,其类型为: type(x) >> <class '__main__.XmlListConfig'> 这不起作用,因为我当然要将它和字符串进行比较。 任何建议都会有所帮助,请随时要求我进一步澄清 要解决字符串比较问题,可以尝试 if str(type(x)) == "<class '__main__.XmlListConfig'>": do_stuff() 查看类型的\uuuuu name\uuuuu属性。但是,这是一种可怕的代码味道

我有一个变量x,其类型为:

type(x)
>> <class '__main__.XmlListConfig'>
这不起作用,因为我当然要将它和字符串进行比较。
任何建议都会有所帮助,请随时要求我进一步澄清

要解决字符串比较问题,可以尝试

if str(type(x)) == "<class '__main__.XmlListConfig'>":
    do_stuff()

查看类型的
\uuuuu name\uuuuu
属性。但是,这是一种可怕的代码味道,因为它删除了Python提供的小类型安全性。
isinstance(x,XmlListConfig)
-或者,在不太可能的情况下,您希望进行精确的类型检查,而不是接受子类:
type(x)是XmlListConfig
isinstance
type
的更多信息:第一个不仅是一个糟糕的想法,它也不起作用,因为
不等于
”\uuu main\uuuuuu.XmlListConfig”
@abarnet很好的捕获,我已经编辑以反映它
if str(type(x)) == "<class '__main__.XmlListConfig'>":
    do_stuff()
if isinstance(x, XmlListConfig):
    do_stuff()