You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python命令处理系统优化:替代if-else执行对应命令

用字典映射重构命令处理系统

替代冗余if-else的最优方案是用字典建立命令字符串与对应处理函数的映射,这种方式符合开闭原则,后续新增命令只需要添加函数和字典条目,完全不用修改核心执行逻辑。

实现步骤示例

1. 定义命令处理函数

把每个命令对应的逻辑封装成独立函数,有参数需求的直接在函数中定义参数:

def handle_connect(host=None, port=None):
    # 连接服务器的逻辑
    if host and port:
        print(f"正在连接到 {host}:{port}")
    else:
        print("请提供主机和端口,格式:/connect <host> <port>")

def handle_disconnect():
    # 断开连接的逻辑
    print("正在与服务器断开连接")

def handle_help():
    # 帮助命令逻辑
    print("支持的命令:/connect <host> <port>、/disconnect、/help")

2. 创建命令映射字典

将命令字符串作为键,对应处理函数作为值,建立一一映射:

command_handlers = {
    "/connect": handle_connect,
    "/disconnect": handle_disconnect,
    "/help": handle_help
}

3. 解析输入并执行命令

拆分用户输入的命令与参数,从字典中匹配对应的处理函数并执行:

def process_command(input_str):
    parts = input_str.strip().split()
    if not parts:
        return
    
    command = parts[0]
    args = parts[1:]
    
    handler = command_handlers.get(command)
    if handler:
        try:
            handler(*args)
        except TypeError:
            print(f"命令 {command} 参数格式错误,请输入/help查看帮助")
    else:
        print(f"未知命令 {command},输入/help查看支持的命令")

# 终端交互示例
while True:
    user_input = input("请输入命令:")
    if user_input == "/exit":
        break
    process_command(user_input)

方案优势

  • 扩展性极强:新增命令只需编写对应的处理函数,再往command_handlers字典中添加一行键值对即可,无需改动核心执行逻辑。
  • 代码结构清晰:命令与逻辑一一绑定,比嵌套if-else可读性高得多。
  • 便于维护:每个命令的逻辑独立封装,调试或修改单个命令不会影响其他功能。

内容的提问来源于stack exchange,提问作者Tele

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:32:48