Задать вопрос
@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]
формирует список из одной строки, в которой будет первый позиционный аргумент. Не список строк, а только одну. И только с первый аргументом, а не со всеми.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
31 янв. 2025, в 05:46
5000 руб./за проект
31 янв. 2025, в 00:16
43000 руб./за проект
30 янв. 2025, в 21:33
5000 руб./за проект