Передать значение из def() в другой def()

Как передать значение переменной mes из одной функции в другую?

def forwardmes2withdelay(message):
    print(message.text)
    if message.text == 'Главное меню':
        button = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        contacts = types.KeyboardButton('Контакты')
        post = types.KeyboardButton('Разместить пост')
        button.add(contacts, post)
        bot.send_message(message.chat.id, 'Главное меню', parse_mode='')
        bot.send_message(message.chat.id, 'Выберите действие', reply_markup=button)
    else:
        try:
            mes = message.id
            return mes
        finally:
            mesg = bot.send_message(message.chat.id,'Укажите желаемое вами время формата <i>ЧЧ:СС</i>', parse_mode='HTML')
            bot.register_next_step_handler(mesg, forwardmestime)



def forwardmestime(message):
    print(mes)
    timeobj = datetime.strptime(message.text, '%H:%M').time()
    if f'{currentdatetime.hour}:{currentdatetime.minute}' == f'{timeobj.hour}:{timeobj.minute}':
        bot.copy_message(chat2, message.chat.id, mes)
    else:
        def tusk():
            bot.copy_message(chat2, message.chat.id, mes)
            return schedule.CancelJob
        schedule.every().day.at(f'{timeobj}').do(tusk)
        while True:
            schedule.run_pending()
            time.sleep(1)

Я хочу, чтобы значение mes из первой функции перешло к другой

То, что вы называете def(), называется «функцией». Я предлагаю вам больше узнать о том, как функции работают в python. В частности, обратите внимание на то, как вы можете вызвать функцию, чтобы заставить ее выполнить какую-то работу, передать значения функции в качестве параметров и вернуть результат обратно. Это все фундаментальные концепции, которые рассматриваются в любом хорошем онлайн-руководстве по Python.

Code-Apprentice 23.11.2022 22:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, вам нужно, чтобы ваши функции определения находились внутри класса.

Второй. вам нужно, чтобы ваши переменные были объявлены внутри этого класса.

Таким образом, вы можете изменить эту переменную в одной функции, а затем использовать ее в другой функции. Так же, как пример ниже.

Чтобы получить к нему доступ, вам нужно использовать «я».

class Person():
    def __init__(self):
        self._name = None

    def changeNameToJames(self):
        self._name = "James"

    def nameIs(self):
        print(self._name)

Все, что здесь написано, правильно, но OP также должен научиться передавать и возвращать значения. Обычно это лучше, чем изменять значение в одной функции и читать его в другой.

Edward Peters 23.11.2022 22:40

Другие вопросы по теме