运行时Python中父类函数中的子类名

时间:2017-05-02 18:43:34

标签: python

是否可以找出哪个子类在父类函数

中调用了父类函数
class ParentClass:

    def print_child_class_name(self):
        print('how to find print the child class name here')

class ChildClass1(ParentClass):
    pass

class ChildClass2(ParentClass):
   pass

child_1 = ChildClass1()
child_2 = ChildClass2()
child_1.print_child_class_name()
child_2.print_child_class_name()

2 个答案:

答案 0 :(得分:0)

使用self.__class__.__name__

class ParentClass:

    def print_child_class_name(self):
        print('Class Name: {}'.format(self.__class__.__name__))

答案 1 :(得分:0)

您可以使用:self.__class__.__name__来检索实例self类的名称。

class ParentClass:

    def print_child_class_name(self):
        print(self.__class__.__name__)

class ChildClass1(ParentClass):
    pass

class ChildClass2(ParentClass):
   pass

child_1 = ChildClass1()
child_2 = ChildClass2()
child_1.print_child_class_name() #Prints ChildClass1
child_2.print_child_class_name() # Prints ChildClass2