使用继承类确定Python类的类型

cod*_*000 1 python oop

我有多个类都继承自单个基类,这是一个简单的例子:

class DataSource(object):
    pass
class TableDataSource(DataSource):
    pass
Run Code Online (Sandbox Code Playgroud)

如果我想确定这些类是否属于DataSource类型,我想我可以执行以下操作:

>>> tdl = TableDataSource()
>>> print tdl is DataSource
False
Run Code Online (Sandbox Code Playgroud)

所以我在这里回到假,如何检查从DataSource继承的所有类是否都是数据源类型对象,而不必专门检查每个类类型?这样可以更轻松地检查对象类型,以便进行其他功能.

谢谢.

whe*_*ies 6

关于is它是否正在测试两个对象是否引用相同的东西.DataSource这个类是一个对象.因此,只有引用DataSource自身的东西才会比较真实.你应该使用的是isinstance这样的:

  isinstance(x, DataSource)
Run Code Online (Sandbox Code Playgroud)