Этот вопрос закрыт для ответов, так как повторяет вопрос Как передать переменную со значением из одной функции в другую функцию в pyTelegramBotAPI?

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

Делаю бота телеграм на python, но когда пытаюсь вывести баланс аккаунта, появляется ошибка balance (переменная с балансом) is not defined. Переношу баланс из функции с вводом промокода на сам функцию, которая отображает профиль. То есть надо из def promo() переместить balance в def profile()

Вот код:

import telebot
import random
from telebot import types

bot= telebot.TeleBot('5861857888:AAEOYxfvnbaEtKUxTrscs01DgnMiv6CQVG8')

answers=['Я не знаю, как ответить на эту команду', 'Я не понял,что ты хочешь сказать', 'Я тебя не понимаю']

@bot.message_handler(commands=['start'])
def welcome(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1 = types.KeyboardButton('Товары ')
    button2 = types.KeyboardButton('Настройки ⚙️')
    button3 = types.KeyboardButton('Информация ℹ️')
    markup.row(button1)
    markup.row(button2, button3)

    bot.send_message(message.chat.id, f'Привет, {message.from_user.first_name}!\nУ меня ты сможешь купить некоторые товары!', reply_markup=markup)

@bot.message_handler(commands=['artem'])
def promo(message):
    balance=0
    bot.send_message(message.chat.id, 'Промокод был успешно применен. На ваш баланс зачислено 100 рублей ✅')
    balance+=100


@bot.message_handler(content_types='photo')
def get_photo(message):
    bot.send_message(message.chat.id, 'У меня нет возможности просматривать фото :(')

@bot.message_handler()
def info(message):
    if message.text == 'Товары ':
        goods(message)
    elif message.text == 'Настройки ⚙️':
        profile(message)
    elif message.text == 'Информация ℹ️':
        information(message)
    elif message.text == 'Назад в меню ':
        welcome(message)
    elif message.text == 'Написать разработчику ':
        bot.send_message(message.chat.id, 'Нажимай на ник и переходи в чат с создателем @artemshten')
    elif message.text == 'Ввести промокод ':
        bot.send_message(message.chat.id, 'Вводите промокод через / (пример /example1234)')

def goods(message):
    markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1=types.KeyboardButton('Товар 1')
    button2 = types.KeyboardButton('Товар 2')
    button3 = types.KeyboardButton('Товар 3')
    button4 = types.KeyboardButton('Товар 4')
    button5 = types.KeyboardButton('Назад в меню ')
    markup.row(button1,button2)
    markup.row(button3,button4)
    markup.row(button5)
    bot.send_message(message.chat.id, 'Товары, которые находятся сейчас в продаже', reply_markup=markup)
def profile(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1 = types.KeyboardButton('Назад в меню ')
    button2 = types.KeyboardButton('Ввести промокод ')
    markup.row(button2)
    markup.row(button1)
    bot.send_message(message.chat.id, f'Твой id: {message.from_user.id}\nТвое имя: {message.from_user.first_name}\nТвой ник: {message.from_user.username}\nБаланс: ', balance, reply_markup=markup)

def information(message):
    markup=types.ReplyKeyboardMarkup(resize_keyboard=True)
    button1=types.KeyboardButton('Написать разработчику ')
    button2=types.KeyboardButton('Назад в меню ')
    markup.row(button1,button2)
    bot.send_message(message.chat.id, 'Напиши создателю бота либо вернись на главную', reply_markup=markup)

bot.polling(none_stop=True)
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Mi11er
@Mi11er
A human...
Либо делайте глобальную переменную ( так делать не надо ) , либо храните ее в какой нить БД
Ответ написан
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы