On 3/1/2020 4:49 AM, Adam Preble wrote:
Based on what I was seeing here, I did some experiments to try to understand 
better what is going on:

class BaseClass:
     def __init__(self):
         self.a = 1

     def base_method(self):
         return self.a

     def another_base_method(self):
         return self.a + 1


class SubClass(BaseClass):
     def __init__(self):
         super().__init__()
         self.b = 2


c = SubClass()
print(c.__dict__)
print(c.__class__.__dict__)
print(c.__class__.__subclasses__())
print(c.__class__.mro())
print(c.__class__.mro()[1].__dict__)
print(getattr(c, "base_method"))
print(c.b)
print(c.a)

print(c.__class__.__subclasses__())
[]
What?! Why isn't this [<class '__main__.BaseClass'>]?

Because BaseClass is the superclass of SubClass.


--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to