2013-12-09 87 views
0

我對類或OOP,
和 不太瞭解,我對我得到的一些結果感到困惑。用戶定義的類對象的類型 - Python

我想在我創建的類上使用type()

class TestClass: 
     pass 

    my_class = TestClass() 
    print type(my_class) 

上面的代碼返回

<type: 'instance'> 

根據我的理解my_class應該被初始化爲TestClass對象..對不對?爲什麼不是輸出TestClass。另外,如果可能的話,我需要改變以獲得這個結果?

回答

0

指定它從the documentation

類和實例有兩種形式:舊式(或者經典)和 新風格。

至於Python 2.1,老式的類是唯一可用於 用戶的味道。 (老式)類的概念是無關的概念類型的 :如果x是一箇舊式的類的實例,然後x.__class__ 指定類的x,但type(x)始終是<type 'instance'>。 這反映了這樣一個事實,即所有舊式實例與其類別無關,都使用一個稱爲 實例的內置類型實現。

通過不從object繼承,您創建一箇舊式類,所以type(my_class)行爲就像它一樣。

object繼承和你的問題就會迎刃而解:

class TestClass(object): 
    pass 

在Python 3,所有的類都是新樣式類,這是很好的。

0

如果你想TestClass的是一個對象,你必須像這樣

class TestClass(object): 
    pass 
相關問題