Добавление операторов локального импорта, если модуль запускается сам - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть класс, который используется в моем веб-приложении с параметрами, которые передаются от пользователя. давайте возьмем этот пример, например:

class SomeObject():
    def __init__(self, param1, param2, logger_object):
        logger_object.log("init...")
        self.param1 = param1
        self.param2 = param2

Теперь мне нужна опция для создания экземпляра этого класса в режиме без головы (чтобы я мог автоматически запускать его через Jenkins).

Итак, я знаю, что могу использовать это:

if __name__ == "__main__":
    logger = initialising logger # question about this later
    param1 = "param1"
    param2 = "param2"
    some_object = SomeObject(param1, param2, logger)

и мой вопрос таков: это правильный / питонский способ сделать это? или мне лучше создать другой класс и наследовать от SomeObject?

Кроме того, текущий файл не импортирует модуль логгера, потому что обычно он не нужен. Я не хочу импортировать этот модуль без причины, поэтому я подумал, что это можно сделать так:

if __name__ == "__main__":
    from logger.location import logger
    logger = logger()
    param1 = "param1"
    param2 = "param2"
    some_object = SomeObject(param1, param2, logger)

Но я не уверен, что это также рекомендуется. Мысли / идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...