我有许多类在实例化之前将我的代码作为对象传递给我。我试图以类似的方式测试类的类型,以测试对象实例的类型,以便使用哪一个。我应该提到这些类可以是彼此的子类。
不幸的是,以这种方式在类本身上使用isinstance(MyClass, MyClass)
会返回False。根据docs类对象的类型为type
。
所以我的问题是 - 我是否有可能以与实例类型相同的方式训练类类型?我该怎么做呢?
答案 0 :(得分:4)
你究竟想做什么?
如果您想知道班级A
是否是班级B
的子类,您可以使用issubclass
:
issubclass(A, B)
对于您的具体情况,您可以Myclass == MyClass
甚至MyClass is MyClass
。
一般来说,深度内省并不是一个好主意,通常留给像Django这样的通用框架。