PUT 一条回什么

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

按协议,handle 处理 PUT k v 交回什么?(bytes)

贯穿的应用层协议(一行一命令、按换行切):req(*parts) 用空格连、末尾加换行;decode(line) 拆成 (命令, 参数表);handle(store, line)PUT k v→OK、GET k→值或 NONE、DEL k→OK/NONE、其它→ERR。

def req(*parts):
    return (" ".join(parts) + "\n").encode()


def decode(line):
    bits = line.decode().split(" ")
    return bits[0], bits[1:]


def handle(store, line):
    # PUT k v -> OK;GET k -> 值 or NONE;DEL k -> OK/NONE;别的 -> ERR
    cmd, args = decode(line)
    if cmd == "PUT" and len(args) == 2:
        store[args[0]] = args[1]
        return b"OK\n"
    if cmd == "GET" and len(args) == 1:
        return (store.get(args[0], "NONE") + "\n").encode()
    if cmd == "DEL" and len(args) == 1:
        return (b"OK\n" if store.pop(args[0], None) is not None else b"NONE\n")
    return b"ERR\n"

store = {}
print(handle(store, b"PUT k v"))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论