3

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

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.
4

3 回答 3

9

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

print inspect.isclass(Trajectory)

将打印True

于 2012-07-02T13:09:22.560 回答
4

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

class Test(object): pass

a = Test()
b = 1234

assert isinstance(a, Test)
assert not isinstance(b, Test)
于 2012-07-02T13:14:43.820 回答
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
于 2012-07-02T13:11:20.960 回答