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