获取子类名称?

发布于 2021-01-29 16:11:43

是否可以获取子类的名称?例如:

class Foo:
    def bar(self):
        print type(self)

class SubFoo(Foo):
    pass

SubFoo().bar()

将打印: < type 'instance' >

我正在寻找一种获取途径"SubFoo"

我知道您可以做到isinstance,但是我不知道该类的名称是先验的,所以这对我不起作用。

关注者
0
被浏览
52
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。
    #!/usr/bin/python
    class Foo(object):
      def bar(self):
        print type(self)
    
    class SubFoo(Foo):
      pass
    
    SubFoo().bar()
    

    from的子类object为您提供了新型的类(不再是新类-python
    2.2!),只要您想使用self属性,如果您从object进行子类化,您将获得更多收益。Python的文档…新样式类。从历史上看,Python保留了旧的方式以Foo()实现向后兼容。但是,这是很久以前的事了。没有太多理由不再从对象继承子类了。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看