我想知道如何检查变量是否是一个类(不是实例!).
我已经尝试使用该函数isinstance(object, class_or_type_or_tuple)
来执行此操作,但我不知道类将具有什么类型.
例如,在以下代码中
class Foo: pass isinstance(Foo, **???**) # i want to make this return True.
我试图取代" class
"与??? ,但我意识到这class
是python中的关键字.
更好的是:使用该inspect.isclass
功能.
>>> import inspect >>> class X(object): ... pass ... >>> inspect.isclass(X) True >>> x = X() >>> isinstance(x, X) True >>> y = 25 >>> isinstance(y, X) False
inspect.isclass可能是最好的解决方案,很容易看出它是如何实现的
def isclass(object): """Return true if the object is a class. Class objects provide these attributes: __doc__ documentation string __module__ name of module in which this class was defined""" return isinstance(object, (type, types.ClassType))
>>> class X(object): ... pass ... >>> type(X)>>> isinstance(X,type) True
isinstance(X, type)
True
如果X
是上课False
则返回,如果不是.