【发布时间】:2021-06-26 13:22:09
【问题描述】:
例如,bot 有命令/set_coordinates。它接受纬度和经度,如下所示:
- 机器人:输入纬度
- 用户:16.4353
- 机器人:输入经度
- 用户: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)
这是一个简化的功能,没有打印和其他东西来证明我需要标记latitude_was_self。问题是我应该将所有内容都存储在数据库中,
因为两个用户可以有不同的latitude_was_set 并且python 中的变量不适合它。似乎不恰当地使用数据库在那里存储标志。如果我需要在一个命令中获取更多数据,这个问题会变得更大。除了使用数据库作为标志存储之外,还有其他选择吗?
这个问题可能很傻,但这是我的第一个机器人 :)
【问题讨论】: