Telegram bot:可用命令的预定

时间:2016-09-01 08:06:24

标签: telegram-bot python-telegram-bot php-telegram-bot

如何组织Telegram机器人的可用命令字典?优秀的程序员如何做到这一点?我知道写几十个if语句是个坏主意,还有switch语句。

目前,它是使用switch实现的:

  1. 机器人收到命令
  2. switch
  3. 中查找
  4. 处理命令
  5. 向用户发送回复
  6. 但是当有许多命令时,switch运算符变得难以维护。解决这个问题的常用方法是什么?

1 个答案:

答案 0 :(得分:1)

我不是Python编码器,但似乎您的问题应该使用associative array数据结构来解决,无论您使用哪种语言。结构的实际名称可能因语言而异:例如,在C ++中,它被称为map,在Python中,它是...... dictionary!因此,您多次在您的问题中写下相关的关键字(即使是原始语言)。

考虑到上述情况,您的程序草图可能如下所示:

#!/usr/bin/python

# Command processing functions:
def func1():
    return "Response 1"

def func2():
    return "Response 2"

# Commands dictionary:
d = {"cmd1":func1, "cmd2":func2}

# Suppose this command was receiced by the bot:
command_received = "cmd1"

# Processing:
try:
    response = d[command_received]()
except KeyError:
    response = "Unknown command"

# Sending response:
print response