• Как фиксировать изменение значения переменной в Python?

    Vindicar
    @Vindicar
    RTFM!
    Не так, переменная меняется не присвоением ей значения, а за счет парсинга с сайта

    Вот что я люблю в вопросах от нубов - никогда не знаешь, про что вопрос на самом деле.
    Твой вопрос звучит так, словно тебя интересует любое присвоение значения переменной, даже если новое значение равно старому. И советы тебе дают в этом направлении. А тебе ведь нужно обнаружить изменение значения, так? Если так, читай дальше.

    Тебе нужно сохранять предыдущее значение переменной. Если программа работает постоянно - можно сохранить в другой переменной. Если нужно, чтобы сведения пережили перезапуск - сохраняй в файл или ещё куда.
    Так или иначе, по завершению парсинга, когда у тебя есть новое значение, ты сравниваешь его со старым. И если они не равны, реагируешь на это. Ну и сразу переносишь новое значение в переменную для старого, чтобы при следующем сравнении уже сравнивать с более новым. Что-то типа:
    old_value = None
    while True:
        new_value = parse_site()  # parse_site() - написанная тобой функция, которая возвращает искомое значение
        if old_value is not None and new_value != old_value:  # если это не первый раз, и значение изменилось
            print('Значение изменилось!')
        old_value = new_value  # чтобы в следующий раз сравнивать с последним увиденным значением
        time.sleep(600)  # спим 10 минут, чтобы не долбить сайт запросами


    Ну и да, неважно откуда ты берёшь значение. Ты всё равно присваиваешь его переменной. Всё равно.
    Если ты этого не понимаешь - отложи свой парсер, и почитай хороший учебник по Питону, того же Марка Лутца, "Изучаем Питон".
    Ответ написан
    Комментировать