2010-08-29 96 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

相关问题