在python中如何在其静态方法中获取类的名称

时间:2011-01-14 14:13:09

标签: python

如何在静态方法中获取类的名称,我有继承 并想要派生类的名称

以下示例在方法my_name()

中代替 XXX 的内容
class snake()
   @staticmethod
   def my_name():  
      print XXX.__name___

class python (snake)
   pass
class cobra (snake)
   pass

python.my_name()
# I want output to be python

cobra.my_name()   
# I want output to be cobra

2 个答案:

答案 0 :(得分:46)

我很确定这对静态方法来说是不可能的。改为使用类方法:

class Snake(object):
    @classmethod
    def my_name(cls):  
        print cls.__name__

答案 1 :(得分:11)

Python中的静态方法仅用于所有意图和目的。它对课程一无所知,所以你不应该这样做。这可能是可能的,大多数事情往往都是。但这是错的。 :)

在这种情况下,你明确地关心这个类,所以你不需要静态方法。 所以使用类方法。