我试图使用python-telegram-bot模块在电报中构建菜单,其中有以下内容:
button_list = [
InlineKeyboardButton("col 1", ...),
InlineKeyboardButton("col 2", ...),
InlineKeyboardButton("row 2", ...)
]
reply_markup = InlineKeyboardMarkup(util.build_menu(button_list, n_cols=2))
bot.send_message(..., "A two-column menu", reply_markup=reply_markup)
我收到此错误:
NameError:全局名称' util'未定义
我无法对样本中的导入进行罚款,但在那里无法识别。
我应该准确导入什么?
答案 0 :(得分:2)
该示例来自我们的Code Snippets页面。因此,要使代码生效,您需要实际包含代码段,因为它本身并不是库的一部分。
def build_menu(buttons,
n_cols,
header_buttons,
footer_buttons):
menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)]
if header_buttons:
menu.insert(0, header_buttons)
if footer_buttons:
menu.append(footer_buttons)
return menu
然后将util.build_menu(button_list, n_cols=2)
更改为build_menu(button_list, n_cols=2)
。
请注意,您甚至不必使用build_menu
来使用按钮。事实上,将按钮定义为二维列表通常更简单,因此您的代码将变为:
button_list = [
[
InlineKeyboardButton("col 1", ...),
InlineKeyboardButton("col 2", ...)
],
[
InlineKeyboardButton("row 2", ...)
]
]
reply_markup = InlineKeyboardMarkup(button_list)
bot.send_message(..., "A two-column menu", reply_markup=reply_markup)