Как структурировать повторно используемый код между модулями

#python #module

#python #модуль

Вопрос:

Я довольно новичок в Python и при написании приложения в итоге получил структуру, которая немного запутана. Приведенный ниже пример должен проиллюстрировать, что я пытаюсь сделать. Проблема в том, что я не могу вызвать метод login из common.py поскольку он определен только в website1.py или website2.py .

Модуль common.py

 class Browser():

    def load_page():
        Login.login()
  

Модуль website1.py
импорт common.py

 class Login:
    @staticmethod        
    def login():
        #code to login to this website 1
  

Модуль website2.py
импорт common.py

 @staticmethod
class Login:
    def login():
        #code to login to website 2
  

Любые мысли о том, как это реструктурировать, были бы оценены.

Ответ №1:

Прежде всего, почему статические методы? Вы могли бы просто сделать def login на глобальном уровне.

Во-вторых, вы могли бы передать ссылку на Browser класс. (или ссылку на модуль, если вы примете мое первое предложение)

 class Browser(object):
    def __init__(self, loginCls):
        self.loginCls = loginCls

    def login_page(self):
        self.loginCls.login()