如何在静态方法中获取类的名称,我有继承 并想要派生类的名称
以下示例在方法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
答案 0 :(得分:46)
我很确定这对静态方法来说是不可能的。改为使用类方法:
class Snake(object):
@classmethod
def my_name(cls):
print cls.__name__
答案 1 :(得分:11)
Python中的静态方法仅用于所有意图和目的。它对课程一无所知,所以你不应该这样做。这可能是可能的,大多数事情往往都是。但这是错的。 :)
在这种情况下,你明确地做关心这个类,所以你不需要静态方法。 所以使用类方法。