按类型调用一次

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

(每道题开头都有同一段:函数类型写作 "(int,str)->bool"fun_type(params, ret) 拼函数类型、ret_of(ft) 取返回类型、call_type(ft, args) 按实参类型列表调用、个数类型都对才回返回类型否则 "ERR"。)

(int,str)->bool,用 (int,str) 调、用 (int,int) 调,各看返回:

def fun_type(params, ret):
    """形参类型列表 + 返回类型 → 函数类型字符串,如 (["int","str"], "bool") → "(int,str)->bool"。"""
    return "(" + ",".join(params) + ")->" + ret


def ret_of(ft):
    """从函数类型取返回类型,如 "(int,str)->bool" → "bool"。"""
    return ft.split("->")[1]


def call_type(ft, args):
    """按函数类型 ft 用实参类型列表 args 调用:个数和类型都对上,交回返回类型;否则 "ERR"。"""
    inside = ft[1:ft.index(")")]
    params = inside.split(",") if inside else []
    if len(params) != len(args):
        return "ERR"
    for p, a in zip(params, args):
        if p != a:
            return "ERR"
    return ret_of(ft)

ft = fun_type(["int", "str"], "bool")
print(call_type(ft, ["int", "str"]) + "/" + call_type(ft, ["int", "int"]))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论