python наследование, проектирование

У меня есть класс ChromeDriver для работы с вебдрайвером, который в конструкторе содержит его инициализацию. Есть еще класс SomeSite, который наследует класс ChromeDriver и все его методы для работы с движком, типа открытие ссылки + обработка возможной ошибки и тд. Объект класса SomeSite создается в цикле несколько раз, при этом происходит и инициализация самого вебдрайвера, т.е. создается много окон, что мне не нужно. То есть, я хочу создавать объекты класса SomeSite, чтобы при этом инициализация (ChromeDriver.init(self)) происходила только один раз.

class ChromeDriver:
    def __init__(self):
        try:
            self.__driver = webdriver.Chrome()
        except WebDriverException:
            pass

class SomeSite(ChromeDriver):
    def __init__(self):
        ChromeDriver.__init__(self)

Ответы (1 шт):

Автор решения: GrAnd

Организуйте какой-нибудь флаг, что ChromeDriver уже инициализирован, и не дёргайте init второй раз. Например:

class SomeSite(ChromeDriver):
    initialised = False
    def __init__(self):
        if not SomeSite.initialised:
            SomeSite.initialised = True
            ChromeDriver.__init__(self)

Если не хотите явно указывать имя класса для доступа к статической переменной, то можно обратиться к ней как self.__class__.initialised.

→ Ссылка