python - 为什么 Dictionary Flag 在 python 中工作有偏差?
问题描述
为什么flagSelectTask有时工作有时不工作?
在下面的代码中,当我在聊天机器人中键入 /reminder 时,该标志应该设置为 True,当我打开 webview 时,它应该相应地检查条件和结果。但是如果我在关闭 web 视图后多次单击它会返回 if 块或 else 块。为什么会这样?
class Bot:
flagSelectTask = {}
def handleTextMessage(self,recipientID,messagingEvent):
if textMessage.lower() == '/reminder':
Bot.flagSelectTask[recipientID] = True # Select Task Webview Access Permission Granted
return self.selectTaskWebView(recipientID)
def selectTaskWebView(self,assignerID):
messageData = {
"recipient":{
"id":assignerID
},
"message": {
"attachment": {
"type": "template",
"payload": {
"template_type": "generic",
"elements": [
{
"title": "Please Select a Task",
"buttons": [
{
"type": "web_url",
"title": "Select",
"url": f"url.com/select-task/{assignerID}",
"webview_height_ratio": "tall",
"messenger_extensions": "true",
},
],
},
],
},
}}}
return self.sendAPI(messageData)
bot = Bot()
@app.route('/select-task/<string:assignerID>',methods=['GET'])
def selectTaskView(assignerID):
if (assignerID in bot.flagSelectTask) and (bot.flagSelectTask[assignerID]):
Task = bot.loadTasks(assignerID)
log(Task)
if len(Task)!=0:
return render_template('tasks.html',tasks=Task)
else:
return '<b>You have not assigned any task yet</b>'
else:
return '<h1> Thank You. Please Restart If you want to send a reminder again.</h1>'
解决方案
推荐阅读
- c - 如何旋转二维控制器的映射
- python-3.x - 将特定列名称存储为键,将列数据存储为字典中的值。无论案例和复数如何,我都需要进行映射
- javascript - 对来自数据库的 blob 图像使用 URL.createObjectURL()
- javascript - 如何从 JSON 对象内的 JSON 中提取特定数据
- c++ - 如何修复“没有重载函数需要 2 个参数”错误 C++
- strapi - 为什么我应该在 React 中使用 Strapi cms?
- python - 在 python 解释器中执行单个变量时,是什么决定了输出?
- xaml - UWP 视觉状态管理器不适用于 PointerOver 和 Pressed 状态
- reactjs - 如何测试调度功能?
- python - Peewee bulk_create 返回 id