当前位置: 代码网 > it编程>前端脚本>Python > Python核心库Literal的具体使用

Python核心库Literal的具体使用

2026年02月05日 Python 我要评论
from typing import literal 是 python 3.8+ 的标准库导入,它引入了一个“字面量类型”(literal)的概念,用来把类型检查精确到具体的值

from typing import literal 是 python 3.8+ 的标准库导入,它引入了一个“字面量类型”(literal)的概念,用来把类型检查精确到具体的值,而不仅仅是“str / int / bool”这类宽泛类型。

1.基础语法

from typing import literal

mode = literal["auto", "none", "required"]
# 变量 mode 只能是字符串 "auto"、"none" 或 "required",传别的值就报错。

2.在函数签名里怎么用

def set_tool_choice(mode: literal["auto", "none", "required"]) -> none:
    ...
set_tool_choice("auto")      # ✅ 通过
set_tool_choice("required")  # ✅ 通过
set_tool_choice("required")  # ❌ 大小写不一致,静态检查器会标红

3.运行时行动

literal 本身不会在运行时拦截非法值;它的威力体现在写代码阶段就能发现拼写错误、避免“魔法字符串”满天飞。

如果你需要运行期也校验,可以搭配 pydantic 或 enum:

from pydantic import basemodel, field
class request(basemodel):
    tool_choice: literal["auto", "none", "required"] = "auto"

4.与 union 区别

# 旧写法,宽泛
mode = union[str, int]        # 任何 str / int 都合法

# 新写法,精确
mode = literal["auto", "none", "required"]  # 只有这三个字符串合法

一句话总结

literal 就是“把允许的写进类型系统”,让 ide 和静态检查器帮你提前发现手滑拼错、传错参数,写接口、写配置枚举时特别香。

到此这篇关于python核心库literal的具体使用的文章就介绍到这了,更多相关python核心库literal内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com