为什么我的isclass函数出错?

时间:2012-07-02 13:08:13

标签: python class

我正在使用以下代码来确定输入参数是类还是变量:

class Trajectory():
  ...

print inspect.isclass( Trajectory() )

其中Trajectory是一个类,但是当我调用这个函数时,我收到的是假的。为什么?

根据文件,这必须是真的

inspect.isclass(object)

    Return true if the object is a class, whether built-in or created in Python code.

3 个答案:

答案 0 :(得分:9)

因为Trajectory()是一个类实例 - Trajectory是一个类。

print inspect.isclass(Trajectory)

将打印True

答案 1 :(得分:4)

我认为您正在寻找isinstance功能。

class Test(object): pass

a = Test()
b = 1234

assert isinstance(a, Test)
assert not isinstance(b, Test)

答案 2 :(得分:2)

因为您正在实例化Trajectory并获取对象实例。观察:

In [1]: import inspect
In [2]: class Trajectory():
   ...:     pass
   ...: 
In [3]: print inspect.isclass(Trajectory())
False
In [4]: print inspect.isclass(Trajectory)
True