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

如何用Python编写自扩展代码?优化Telegram机器人指令逻辑

优化后的可扩展Telegram机器人条件匹配实现

优化代码实现

# 存储条件与结果的映射,支持动态添加
condition_mapping = {}
# 管理员密码(请根据实际需求修改为安全密码)
ADMIN_PASSWORD = "your_admin_pass"

def handle_user_trigger():
    user_input = input("请输入触发指令:")
    # 遍历映射表匹配条件,输出对应结果
    for cond, outc in condition_mapping.items():
        if user_input == cond:
            print(outc)
            return
    print("未知触发指令")

def add_condition_pair():
    # 管理员权限验证
    password = input("请输入管理员密码:")
    if password != ADMIN_PASSWORD:
        print("密码错误,无权限添加规则")
        return
    # 录入新的条件与结果
    cond = input("请输入触发条件:")
    outc = input("请输入对应输出结果:")
    condition_mapping[cond] = outc
    print(f"规则添加成功:{cond} → {outc}")

def main_loop():
    while True:
        sys_command = input("系统指令(add/program/exit):")
        if sys_command == "add":
            add_condition_pair()
        elif sys_command == "program":
            handle_user_trigger()
        elif sys_command == "exit":
            print("程序已退出")
            break
        else:
            print("未知系统指令,请重新输入")

if __name__ == "__main__":
    main_loop()

核心优化说明

  • 动态映射存储:用字典condition_mapping替代多个全局变量,无需重复定义setupN函数,可无限添加条件-结果对,扩展性拉满
  • 统一匹配逻辑:handle_user_trigger函数通过遍历字典完成条件匹配,新增规则后无需修改匹配代码,符合开闭原则
  • 权限控制:添加规则前强制验证管理员密码,避免未授权操作
  • 清晰的逻辑划分:将系统管理指令(添加/运行/退出)和用户触发指令分离,代码结构更清晰易懂
  • 可读性提升:函数命名语义化,去掉冗余的全局变量,整体代码更整洁

注:如果需要支持更复杂的结果(比如多段文本、特殊格式内容),直接让管理员输入对应字符串即可,程序会原样输出;如果需要重启机器人后保留规则,可将字典内容写入本地文件或数据库实现持久化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:12:55