Задать вопрос
@VitaliySm

Как правильно перегрузить коструктор?

Как переопределить конструктор CrawlSpider, так что бы он принимал на вход значение, делал так:

allowed_domains = []

def __init__(self, *args, **kwargs):
        super(CrawlSpider, self).__init__(self, *args, **kwargs)
        if args == True:
            self.start_urls = ['%s' % args]
        else:
            self.start_urls = ['%s' % kwargs]
  • Вопрос задан
  • 2349 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
Вы спрашиваете как написать конструктор, чтобы он делал то, что он сейчас делает? Ничего не меняйте и он будет работать так, как вы просите.

Но, сравнивать args с True странно, у них типы разные и выражение будет всегда ложно. Надо писать вот так:
if args:
Т.е. воспользоваться неявным приведением к булевской переменной. Сравнивать так, как предлагают в другом комментарии: if args[0] скорее всего нельзя т.к. этот код требует наличия одного позиционного аргумента и проверяет его.

Остальной код тоже странный. Вот это:
self.start_urls = ['%s' % args]
формирует список из одной строки, в которой будет первый позиционный аргумент. Не список строк, а только одну. И только с первый аргументом, а не со всеми.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы