1

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

现在它是使用实现的switch

  1. 机器人收到命令
  2. 在一个switch
  3. 处理命令
  4. 将响应发送给用户

但是当有几十个命令时,switch操作员变得难以维护。解决这个问题的常用方法是什么?

4

1 回答 1

1

我不是 Python 编码员,但无论您使用哪种语言,您的问题似乎都应该使用关联数组数据结构来解决。结构的实际名称可能因语言而异:例如,在 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
于 2016-09-01T08:51:38.633 回答