我想知道如何检查变量是否是类(而不是实例!)或者不是。
我曾尝试使用函数isinstance(object, class_or_type_or_tuple)
来完成此操作,但我不知道一个类将具有什么类型。
例如,在下面的代码中
class Foo: pass
isinstance(Foo, **???**) # i want to make this return True.
我尝试将"class
“替换为?,但我意识到class
是python中的一个关键字。
发布于 2008-12-28 03:47:01
更好的方法是:使用inspect.isclass
函数。
>>> import inspect
>>> class X(object):
... pass
...
>>> inspect.isclass(X)
True
>>> x = X()
>>> isinstance(x, X)
True
>>> inspect.isclass(x)
False
发布于 2008-12-28 03:11:54
>>> class X(object):
... pass
...
>>> type(X)
<type 'type'>
>>> isinstance(X,type)
True
发布于 2012-04-12 20:24:09
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))
https://stackoverflow.com/questions/395735
复制相似问题