如何实现静态方法get_class_name()
以获得预期结果
我需要在没有实例化的情况下获得正确的类名。(我知道这可以用实例来完成)。Python版本为2.6.
class base_class():
@staticmethod
def get_class_name():
return <??>
class sub_classA(base_class):
pass
class sub_classB(base_class):
pass
print sub_classA.get_class_name() # should print 'sub_classA'
print sub_classB.get_class_name() # should print 'sub_classB'
print base_class.get_class_name() # should print 'base_class'
改成classmethod
:
class base_class():
@classmethod
def get_class_name(cls):
return cls.__name__
class sub_classA(base_class):
pass
class sub_classB(base_class):
pass
print sub_classA.get_class_name() # -> sub_classA
print sub_classB.get_class_name() # -> sub_classB
print base_class.get_class_name() # -> base_class
当然,你不需要一个函数/方法来做到这一点,可以直接访问__name__
类属性:
print sub_classA.__name__ # -> sub_classA
# etc