2010-08-29 88 views

回答

27

用classmethod替換static方法。當它被調用時,這個類將被傳遞,所以你可以從中獲得類名。

class Bar(object): 

    @classmethod 
    def bar(cls): 
     # code 
     print cls.__name__ 

class Foo(Bar): 
    # code 
    pass 

>>> Bar.bar() 
Bar 

>>> Foo.bar() 
Foo 
+1

非常感謝戴夫! – 2010-08-29 21:31:05

+2

這不回答問題。問題是如何用靜態方法來做到這一點。 – sebix 2016-11-10 21:57:11

2

如果您需要查找班級信息,適當的方法是使用@classmethod。現在

class Bar(object): 
    @classmethod 
    def bar(cls): 
     # code 
     print(cls.__name__) 

class Foo(Bar): 
    # code 
    pass 

bar方法以班級爲cls這是實際的類調用者的參考。如代碼所示,cls.__name__是您正在查找的課程的名稱

>>> Foo.bar() 
Foo 
>>> Bar.bar() 
Bar 
+0

已經回答了,不過謝謝! – 2010-08-29 21:35:24

相關問題