Python 如何更新传递给InlineButton的变量的值

Python 如何更新传递给InlineButton的变量的值,python,telegram,telegram-bot,python-telegram-bot,Python,Telegram,Telegram Bot,Python Telegram Bot,我最近在StackOverflow上 现在我在TelebotAPI上编写了一个机器人,我正在尝试制作一个带有用户喜好和不喜好的动态键盘。我想在按钮上显示点击次数。为此,它们的值被写入我使用sqlite3的数据库中 最初,值会正确显示,但变量的新值只有在重新启动bot后才会显示 我应该使用什么函数或方法更新值而不重新启动 import telebot import sqlite3 as sql import config from telebot import types connection

我最近在StackOverflow上

现在我在TelebotAPI上编写了一个机器人,我正在尝试制作一个带有用户喜好和不喜好的动态键盘。我想在按钮上显示点击次数。为此,它们的值被写入我使用sqlite3的数据库中

最初,值会正确显示,但变量的新值只有在重新启动bot后才会显示

我应该使用什么函数或方法更新值而不重新启动

import telebot
import sqlite3 as sql
import config
from telebot import types

connection = sql.connect('lind.sqlite')
q = connection.cursor()
#q.execute('''CREATE TABLE lind (id int auto_increment primary key, like int, norm int, diz int)''')
connection.commit()

teal1 = int(0)
tean1 = int(0)
tead1 = int(0)

q.execute("INSERT INTO lind (like, norm, diz) VALUES ('%s', '%s', '%s')"%(teal1, tean1, tead1))
connection.commit()

q.execute("SELECT * FROM lind")
connection.commit()
re = q.fetchone()
az = re[1]
azz = re[2]
azzz = re[3]

q.close()
connection.commit()
connection.close()

bot = telebot.TeleBot(config.TOKEN)


photo = 'AgADAgAD-6wxG7agqUrFbpkcDO9ste__tw8ABAEAAwIAA20AA4X1BgABFgQ' #'ШУ Гуюаньчунь'}},

def keyboard_reaction():
    keyboard = types.InlineKeyboardMarkup()
    but_1 = types.InlineKeyboardButton(text='Like {like}'.format(like=az), callback_data='tea1like')
    but_2 = types.InlineKeyboardButton(text='Norm {norm}'.format(norm=azz), callback_data='tea1norm')
    but_3 = types.InlineKeyboardButton(text='DizL {diz}'.format(diz=azzz), callback_data='tea1diz')
    keyboard.add(but_1, but_2, but_3)
    return keyboard

@bot.message_handler(commands=['start'])
def first(message):
    startmenu = types.ReplyKeyboardMarkup(True, True)
    startmenu.row('GO!')
    bot.send_message(message.chat.id, 'Hello!✋The problem is that 
az, azz, azzz
variables in
inline()
function are diferent to
az, azz, azzz
variables in
keyboard_reaction()
function. You sloud initialize this variables in
inline()
as a global varible.

@bot.callback_query_handler(func=lambda c: True)
def inline(c):
    global az
    global azz
    global azzz
    ...
进口遥控机器人 将sqlite3作为sql导入 导入配置 从telebot导入类型 connection=sql.connect'lind.sqlite' q=连接。光标 q、 执行“创建表lind id int自动递增主键,如int、norm int、diz int” 连接.提交 teal1=int0 tean1=int0 tead1=int0 q、 将executeINSERT插入类lind、norm、diz值“%s”、“s”、“s”%tea1、tea1、tea1 连接.提交 q、 executeSELECT*从lind 连接.提交 re=q.fetchone az=re[1] azz=re[2] azzz=re[3] q、 接近 连接.提交 连接。关闭 bot=telebot.TeleBotconfig.TOKEN 照片='AgADAgAD-6wxG7agqUrFbpkcDO9ste__tw8;8abaeawiaa20aa4x1bgabfgq''БУюачааачаа}, def键盘反应: 键盘=类型。InlineKeyboardMarkup 但_1=types.InlineKeyboardButtontext='Like{Like}'。formatlike=az,callback_data='tea1like' 但_2=types.InlineKeyboardButtontext='Norm{Norm}'。formatnorm=azz,回调_data='tea1norm' 但_3=types.inlinekeyboardbuttonext='DizL{diz}'。formatdiz=azzz,callback_data='tea1diz' keyboard.addbut_1,but_2,but_3 返回键盘 @bot.message_handlercommands=['start'] def第一条消息: startmenu=types.ReplyKeyboardMarkupTrue,True 开始菜单,开始 bot.send_messagemessage.chat.id'你好!✋ 问题是内联函数中的az、azz、azzz变量与键盘反应函数中的az、azz、azzz变量不同。您可以在内联中将此变量初始化为全局变量

@bot.callback\u query\u handlerfunc=lambda c:True def inlinec: 全球az 全球azz 全球azzz ...