3

次のコードを使用して、入力パラメーターがクラスであるか変数であるかを判別しています。

class Trajectory():
  ...

print inspect.isclass( Trajectory() )

ここで、Trajectoryはクラスですが、この関数を呼び出すと、falseを受け取ります。なんで?

ドキュメントによると、これは真実でなければなりません

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 に答える