Как структурировать повторно используемый код между модулями - PullRequest
0 голосов
/ 09 июня 2011

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

Модуль common.py

class Browser():

    def load_page():
        Login.login()

Модуль website1.py import common.py

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

Модуль website2.py import common.py

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

Буду признателен за любые мысли о том, как это реструктурировать.

1 Ответ

1 голос
/ 09 июня 2011

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

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

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

    def login_page(self):
        self.loginCls.login()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...