news 2026/4/18 8:16:27

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/13 17:35:00

亲测好用!专科生毕业论文AI论文网站TOP10测评

亲测好用!专科生毕业论文AI论文网站TOP10测评 2026年专科生论文写作工具测评:为何需要这份榜单? 随着AI技术的不断进步,越来越多的专科生开始借助AI论文网站来提升写作效率、优化内容质量。然而,面对市场上五花八门的…

作者头像 李华
网站建设 2026/4/17 19:26:46

【软考每日一练003】前趋图与 PV 操作全解析

【软考每日一练003】前趋图与 PV 操作全解析 一、典例题目二、 题目解析 1. 信号量设置(按箭头标注) 我们为图中的 5 条边设置信号量: P1→P2P1 \rightarrow P2P1→P2:信号量 S1S1S1P1→P3P1 \rightarrow P3P1→P3:信号…

作者头像 李华
网站建设 2026/4/17 22:29:54

“微型应用“兴起:非开发者自主开发应用而非购买现成产品

Rebecca Yu花了七天时间编写了她的餐厅推荐应用。她厌倦了在群聊中因为无法决定去哪里吃饭而产生的选择困难症。凭借决心、Claude和ChatGPT的帮助,Yu决定从零开始构建一个餐厅应用——一个能够基于她和朋友们的共同兴趣推荐餐厅的应用。"一旦随性编程应用出现后…

作者头像 李华
网站建设 2026/4/18 5:33:29

C# 实现 TCP/IP 客户端与服务器数据交互及与西门子 S7 - 200Smart 通讯

C# TCP IP 客户端和服务器工程源码,带注释,里面含有以字节、字、浮点型数据、字符串数据进行数据交互的客户端与服务器源码,可实现中英文字符串实现聊天,本图为与西门子S7-200Smart通讯为例在 C# 的编程世界里,实现 TC…

作者头像 李华
网站建设 2026/4/11 21:14:20

西门子PLC 200Smart与三菱变频器Modbus通讯程序实践

西门子plc与三菱变频器通讯程序 西门子plc200smart与三菱变频器modbus通讯程序,可以帮你学会modbus通讯在自动化控制领域,不同品牌设备之间的通讯协作是常见需求。今天咱们就来聊聊西门子PLC 200Smart与三菱变频器通过Modbus协议进行通讯的程序实现。 M…

作者头像 李华