news 2026/5/1 9:04:41

Python核心库-Literal

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python核心库-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 和静态检查器帮你提前发现手滑拼错、传错参数,写接口、写配置枚举时特别香。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 19:55:38

告别嘈杂!Moodist%20白噪音神器,搭配%20cpolar%20解锁随时随地的宁静

Moodist 作为一款沉浸式环境音效生成器,核心功能是将雨打屋檐、篝火噼啪、山间溪流等数十种自然与生活音效拆分为独立模块,用户可自由调配比例,打造专属治愈音效,适配职场人、学生党、宝妈等各类需要舒缓环境的人群,其…

作者头像 李华
网站建设 2026/4/30 11:49:50

电动汽车与燃油车仿真模型大揭秘

纯电动汽车BEV 电机 电池 VCU控制仿真模型纯电动汽车整车仿真测试; 附赠传统燃油车 仿真模型 发动机 传动系 车辆模型 . 模型均有直观的模型搭建说明描述!嘿,各位技术宅们!今天咱来唠唠超酷的纯电动汽车(BEV)和传统燃…

作者头像 李华
网站建设 2026/5/1 7:21:44

科技设备免费处理的秘密技巧:快速回收打印机和笔记本电脑

我们都有那样一个"墓地"衣柜,里面塞满了旧笔记本电脑和缠成一团的打印机电缆,因为没人愿意处理正确丢弃它们的麻烦事。但到了2026年,让电脑和其他科技设备烂在那里不仅浪费空间,更错失了为地球做最基本贡献而不花一分钱…

作者头像 李华
网站建设 2026/5/1 6:14:54

研究人员通过数据投毒技术保护知识图谱免遭盗用

来自中国和新加坡高校的研究人员开发了一项新技术,能够使被盗的知识图谱数据在未经授权的情况下被整合到GraphRAG AI系统中时变得无用。大语言模型基于训练数据进行预测,无法有效回应其他数据的查询。AI行业通过检索增强生成(RAG)…

作者头像 李华
网站建设 2026/4/29 9:01:48

打造学生信息管理系统:从构思到实现

简单学生信息管理系统(附源码),原生无边框winformsqlite,主要运用窗体继承动态导航菜单反射创建窗体对象家事件刷新数据,自定义4种类型弹窗类型对话框,数据分层,增删查改都实现了,其…

作者头像 李华