I am creating a multilevel inheritance. I am in doubt why my base classes methods in constructor (__init__
) are not getting calling only super
is executing.
Here is my example.
from PyQt5.QtWidgets import QMainWindow
class PSheet(object):
def __init__(self):
print('PSheet - Start')
super(PSheet, self).__init__()
print('PSheet - End')
self.some_method()
def some_method(self):
print('PSheet - In Some Method')
class config(object):
def __init__(self):
print('config - Start')
super(config, self).__init__()
print('config - End')
class BaseClassWithQt(QMainWindow, config):
def __init__(self):
print('BaseClassWithQt - Start')
super(BaseClassWithQt, self).__init__()
print('BaseClassWithQt - End')
class DerivedClassWithQt(BaseClassWithQt, PSheet):
def __init__(self):
print('DerivedClassWithQt - Start')
super(DerivedClassWithQt, self).__init__()
print('DerivedClassWithQt - End')
print(DerivedClassWithQt.__mro__)
test_with_qt = DerivedClassWithQt()
Output
(<class '__main__.DerivedClassWithQt'>, <class '__main__.BaseClassWithQt'>, <class '__main__.config'>, <class '__main__.PSheet'>, <class 'object'>)
DerivedClassWithQt - Start
BaseClassWithQt - Start
I am confused what wrong i am doing, since i am not getting all the prints available in all constructors.
For clarification i have printed mro also for both cases.
What do i need to correct?