我有一个名为Person
的超级类,我将其扩展为Employee
。 我想在超级(父级)类中打印此扩展(子)类的名称。
这是可能的吗? 如果可以,我该如何打印子类名称?
我有一个名为Person
的超级类,我将其扩展为Employee
。 我想在超级(父级)类中打印此扩展(子)类的名称。
这是可能的吗? 如果可以,我该如何打印子类名称?
你可以使用type(self).__name__
来实现。
type(self)
会获取self
真正所属的类,即使它是在一个基类中调用也可以。
所有类都有一个__name__
属性,它返回它们的名称字符串。
__subclasses__()
方法来访问子类。 - Bugs Buggy__subclasses__
,没有实例可以获取其类。也许OP没有完全明确,但在我看来,__subclasses__
超出了他们所问的范围。 - luther
__bases__
属性访问;也就是说,Person
将出现在元组Employee.__bases__
中。 - chepnerclass Employee(Person)
,并且从Person
中获取Employee
的名称。 - TomerikooPerson
超类中获取名称为Employee
的类名。 - iso_9001_Person.__subclasses()__
的返回值(它是所有子类的列表;您需要确定您真正感兴趣的子类)。例如,尝试在某个时候使用object.__subclasses__()
。 - chepner