[英]Getting derived class name statically in python
How can i implement the static method get_class_name()
to get the expected results. 我如何实现静态方法get_class_name()
以获得预期的结果。
I need to get the correct class name without instantiating. 我需要获得正确的类名而不实例化。 (I know this can be done with an instance). (我知道这可以通过一个实例来完成)。 Python version is 2.6. 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'
Make it a classmethod
instead: 使其改为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
Of course you don't need a function/method to do this and could just access the __name__
class attribute directly: 当然,您不需要功能/方法即可执行此操作,而可以直接访问__name__
类属性:
print sub_classA.__name__ # -> sub_classA
# etc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.