如何移除if/elif语句优化Python进程控制代码并提升简洁性?
Python代码优化:移除if-elif链并提升简洁性
优化方案
用关键词-操作映射字典替代冗长的if-elif链,这是Python中处理这类分支逻辑的常用专业手法,兼具可读性、扩展性和执行效率。同时替换os.system为更推荐的subprocess.run(Python 3.5+),统一命令执行方式,提升代码规范性。
优化后代码
import subprocess def handle_command(command): # 构建关键词到执行操作的映射字典 command_map = { "valorant": lambda: subprocess.run(["taskkill", "/F", "/IM", "VALORANT-Win64-Shipping.exe"], check=False), "comp": lambda: subprocess.run(["shutdown", "/s", "/t", "1"], check=False), "steam": lambda: subprocess.run(["taskkill", "/F", "/IM", "steam.exe"], check=False), "discord": lambda: subprocess.run(["taskkill", "/F", "/IM", "Discord.exe"], check=False), "cyberpunk": lambda: subprocess.run(["taskkill", "/F", "/IM", "Cyberpunk2077.exe"], check=False) } # 遍历映射,匹配到关键词则执行对应操作 for keyword, action in command_map.items(): if keyword in command: action() break # 匹配到第一个关键词后终止遍历(保持原逻辑)
方案优势
- 移除冗余分支:用字典替代if-elif,代码结构更紧凑,避免重复的条件判断代码
- 扩展性强:新增命令只需在
command_map中添加键值对,无需修改分支逻辑 - 统一执行方式:使用
subprocess.run替代os.system,支持更精细的进程控制(如捕获输出、设置超时等),符合Python官方推荐的最佳实践 - 执行效率更高:字典的键查找是O(1)时间复杂度,优于线性遍历的if-elif链
内容的提问来源于stack exchange,提问作者Stewestrong
相关产品推荐
相关产品推荐

