• Как остановить цикл?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    У вас такой длинный цикл. что надо кнопкой останавливать -- переделывайте. Такого в приложении быть не должно.
    Длительные операции нужно делать кусочками и асинхронно.
    Сформируйте очередь задач. Каждая задача должна быть мелкой и атомарной.
    У вас тут, судя по всему, сплошная архитектурная лапша в коде.
    Не ясно как вы этот код запускаете, не ясно что у вас вокруг него.
    Ясно только, что вы тут намудрили какой-то витиеватый костыль и пытаетесь решить стандартную задачу каким-то кустарным дендрофекальным методом.

    Из всего могу срезюмировать.
    • Выделите и изолируйте модель задачи.
    • Накапливайте их в очереди.
    • Заполняйте очередь когда это требуется. Вытаскивайте и обрабатывайте отдельные задачи когда это возможно, но асинхронно.

    Более подробно можно подумать, если объясните чего пытаетесь тут добиться.
    Если попробовать играть по вашим правилам и дать ответ на именно ваш не очень правильный вопрос, то нужно обрабатывать интерфейс в отдельном треде, между тредами поднять мьютекс и по его состояние проверять в этом цикле. Но это плохой путь.
    Ответ написан
    1 комментарий
  • Как получить геоданные из vk api?

    appliks
    @appliks
    Работает? Не трогай.
    1) Если пользователь не врун и указал настоящий город в профиле, то можно узнать с помощью метода users.search.
    2) Если думаешь, что он врун, то можешь предложить ему нажать кнопку Location (Рекомендую также сделать кнопку для ручного ввода).

    PS: Давно api не использую, кнопки даже не пробовал, поэтому примера не имею, но в интернете видел много статей про использование клавиатуры.
    Ответ написан
    Комментировать
  • Как отслеживать сообщения от пользователя вк Python 3 Vk api?

    Тебе нужно создать класс пользователя и объявить в нём 3 поля: id, name, isNameSelect и создать список объектов данного класса.
    Если человек пишет первый раз (то есть пользователя с таким id нет в списке), надо его туда добавить.
    Если человек написал 'девушку', 'парня' или 'всё равно', ты устанавливаешь этому человеку значение isNameSelect true. И потом проверяешь, если у человека isNameSelect true, то установить ему name которое он написал
    Ответ написан
    1 комментарий