python-telegram-bot - 如何在电报机器人api中的一个命令中获取多个输入?
问题描述
例如, bot 有 command /set_coordinates
。它接受纬度和经度,如下所示:
- Bot:输入纬度
- 用户:16.4353
- Bot:输入经度
- 用户:140.4325
问题是机器人每条消息只接收一个坐标,并且要了解它需要请求纬度或经度,它应该记住以前的消息。例如:
latitude_was_set = False
latitude, longitude = 0, 0
def set_coordinates_handler(update: Update, context: Context):
received_text = update.message.text
# First coordinate
if not self.latitude_was_set:
latitude = float(received_text)
self.latitude_was_set = True
else:
longitude = float(received_text)
这是简化的功能,没有打印和其他东西来证明我需要flag latitude_was_self
。问题是我应该将所有内容存储在数据库中,因为两个用户可以有不同latitude_was_set
的变量,并且 python 中的变量不适合它。似乎不恰当地使用数据库在那里存储标志。如果我需要在一个命令中获取更多数据,这个问题会变得更大。除了使用数据库作为标志存储之外,还有其他选择吗?
这个问题可能很愚蠢,但这是我的第一个机器人 :)
解决方案
推荐阅读
- java - 如何使用 Java(netbeans) 解压缩文件夹?
- c# - 如何从网络文件夹中获取最新的文本文件
- python - 需要在 25x25 网格中找到五个相邻数字的最大和
- python - 如何在这句话中添加一个整数?
- javascript - 参考其他模型在 Mongoose 中查找和更新不起作用
- python - Matplotlib,如何使用文本框和按钮小部件更新图形?
- javascript - 创建一个名为 priceLookup 的函数来查找单个项目的价格
- python - Elif 打印错误信息
- python - 带字符串参数的while函数
- javascript - 将过去和未来的日期添加到 Firestore/Firebase