1

我有许多类,在实例化它们之前,我将它们作为对象传递给我的代码。我正在尝试以与测试对象实例的类型类似的方式测试类的类型以锻炼使用哪个。我应该提到这些类可以是彼此的子类。

不幸的是,isinstance(MyClass, MyClass)以这种方式在类本身上使用返回 False。根据文档类对象是类型type

所以我的问题是——我是否可以像使用实例类型一样锻炼类类型?我该怎么办?

4

1 回答 1

4

你到底想做什么?

如果你想知道类是否A是一个类的子类,B你可以使用issubclass

issubclass(A, B)

对于您的特定情况,您可以只做Myclass == MyClass甚至MyClass is MyClass.

一般来说,深度自省并不是一个好主意,通常留给像 Django 这样的通用框架。

于 2013-06-14T09:51:01.257 回答