如何检查一个变量是否是一个类?

新手上路,请多包涵

我想知道如何检查一个变量是否是一个类(不是实例!)。

我试过使用函数 isinstance(object, class_or_type_or_tuple) 来做到这一点,但我不知道一个类会有什么类型。

例如,在下面的代码中

class Foo: pass
isinstance(Foo, **???**) # i want to make this return True.

我试图用 ??? 替换“ class ” ,但我意识到 class 是 python 中的关键字。

原文由 jeeyoungk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 370
2 个回答

更好的是:使用 inspect.isclass 函数。

 >>> import inspect
>>> class X(object):
...     pass
...
>>> inspect.isclass(X)
True

>>> x = X()
>>> isinstance(x, X)
True
>>> inspect.isclass(x)
False

原文由 Benjamin Peterson 发布,翻译遵循 CC BY-SA 4.0 许可协议

>>> class X(object):
...     pass
...
>>> type(X)
<type 'type'>
>>> isinstance(X,type)
True

原文由 S.Lott 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题