12:55

Я котика передамажил. Может дело в тебе?
Подскажите если кто с питоном знаком. Сижу уже третьи сутки.
Код состоит из функций. Глобальные переменные запрещены. В функцию приходит строка которую надо сохранить и потом воспользоваться в другом месте кода. Может кто в курсе как это воплотить?

п.с. Это связано с написанием телеграмбота через библиотеку pytelegrambotAPI.

Комментарии
04.06.2022 в 13:08

この世界は。。。いいですか?
Вам сюда.
04.06.2022 в 13:14

Я котика передамажил. Может дело в тебе?
nio, как синглтон может в этом помочь?
04.06.2022 в 15:08

この世界は。。。いいですか?
Ну я даже теряюсь, как вам ответить... Может, в одном месте дёрнуть его, чтобы он строку запомнил, в другом - дёрнуть, чтобы отдал?
04.06.2022 в 15:12

Я котика передамажил. Может дело в тебе?
nio, там не одна переменная. Ради каждой городить этот огород?
Синглтон насколько знаю нужен чтобы в нём хранились уникальные данные. Для того чтоб дёргать по одной переменной получится уж очень громоздкая система.
04.06.2022 в 17:33

fire-dragon
Сохраняйте в базе в чем проблема?
Ну или обьявите класс и передавайте его по цепочке функций
04.06.2022 в 17:40

Я котика передамажил. Может дело в тебе?
fire-dragon, более простых способов нет? Ради пары переменных целую базу заводить единственный выход?

Ну или обьявите класс и передавайте его по цепочке функций

Это как?
04.06.2022 в 17:51

この世界は。。。いいですか?
Я что-то не улавливаю... А в чём, собственно, проблема?


04.06.2022 в 18:05

Я котика передамажил. Может дело в тебе?
nio, тут пошаговое сохранение. Получение одной строки из месседжа, после этого перебрасывает в другую и так же надо сохранить. Эти переменные локальные в этих функциях.
Если через ретёрн пробовать вывести, сама функция которую подставляешь будет требовать заполнение скобок которые как бы заполнены переданным через метод библиотеки меседжем. Что туда надо подставлять я хз именно это не даёт использовать саму функцию для передачи переменной в ней.
Идея в том чтобы с каждым шагом в каждой функции сохранить переменную. Но вот дальше тупик т.к. ретёрн натыкается на требование вставлять в скобки параметр притом что в вызове аргумент уже есть.

@bot.message_handler(content_types=['text'])
def bs_start_message(message) -> None:
if message.text != 'ok':
bot.send_message(message.chat.id, 'Введите пожалуйста город2')
bot.register_next_step_handler(message, reg_city)

def reg_city(message):
print('отработала функция 1')

v = message.text

print('сработало', v)
bot.send_message(message.chat.id, 'Введите дату')
bot.register_next_step_handler(message, reg_data)
08.06.2022 в 14:03

Я котика передамажил. Может дело в тебе?
Проблему обошёл через БД.
Другого способа не нашёл (до трясучки уже эта проблема довела, несколько дней подряд только над ней и сидел пытаясь через решения из функций обойти)