2012-12-30 11 views
6

我有以下代碼:Python的 - 我怎樣才能從一個類的方法中獲取類的名字 - 使用@classmethod

class ObjectOne(object): 
    @classmethod 
    def print_class_name(cls): 
     print cls.__class__.__name__ 

    def print_class_name_again(self): 
     print self.__class__.__name__ 

if __name__ == '__main__': 
    obj_one = ObjectOne() 
    obj_one.print_class_name() 
    obj_one.print_class_name_again() 

輸出是:

type 
ObjectOne 

我想輸出是:

ObjectOne 
ObjectOne 

但我想通過@classmethod decorat保持test_cls作爲一個類的方法要麼。

我該如何做到這一點?

回答

5

這是cls.__name__cls已經指向該課程,現在您將獲得課程的名稱(始終爲type)。

+4

's/always/usually /'。 Metaclasses岩石。 – delnan

23

classmethod接收該類作爲其參數。這就是爲什麼你叫它cls。只要做cls.__name__

相關問題