Get subclass name?

后端 未结 4 556
北海茫月
北海茫月 2021-01-03 22:23

Is it possible to get the name of a subclass? For example:

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

class SubFoo(Foo):
    pass

SubFoo().bar         


        
4条回答
  •  天涯浪人
    2021-01-03 22:47

    #!/usr/bin/python
    class Foo(object):
      def bar(self):
        print type(self)
    
    class SubFoo(Foo):
      pass
    
    SubFoo().bar()
    

    Subclassing from object gives you new-style classes (which are not so new any more - python 2.2!) Anytime you want to work with the self attribute a lot you will get a lot more for your buck if you subclass from object. Python's docs ... new style classes. Historically Python left the old-style way Foo() for backward compatibility. But, this was a long time ago. There is not much reason anymore not to subclass from object.

提交回复
热议问题