我正在使用以下代码来确定输入参数是类还是变量:
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.
答案 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