2012-07-02 12 views
3

我使用以下代碼以確定所述輸入參數是否是一個類或一個變量:爲什麼我會爲isclass函數獲取false?

class Trajectory(): 
    ... 

print inspect.isclass(Trajectory()) 

其中所述軌跡是一個類,但是當我在調用此函數我收到假。爲什麼?

根據該說明文件必須真實

inspect.isclass(object) 

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

回答

9

因爲Trajectory()是一個類的實例 - Trajectory是一類。

print inspect.isclass(Trajectory) 

將打印True

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 
4

我認爲您正在尋找isinstance函數。

class Test(object): pass 

a = Test() 
b = 1234 

assert isinstance(a, Test) 
assert not isinstance(b, Test) 
相關問題