Python核心库Literal的具体使用

 更新时间:2026年02月05日 10:01:16   作者:user5838167523996  
Literal是Python 3.8+中引入的类型提示工具,用于精确指定变量或函数参数的值,它在函数签名中非常有用,可以在编写代码时提前发现错误,下面就来介绍一下具体使用

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pytorch中的backward()多个loss函数用法

    Pytorch中的backward()多个loss函数用法

    这篇文章主要介绍了Pytorch中的backward()多个loss函数用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • tensorflow 输出权重到csv或txt的实例

    tensorflow 输出权重到csv或txt的实例

    今天小编就为大家分享一篇tensorflow 输出权重到csv或txt的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python安装cx_Oracle和wxPython的方法

    python安装cx_Oracle和wxPython的方法

    这篇文章主要介绍了python安装cx_Oracle和wxPython的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Python使用自定义装饰器的示例详解

    Python使用自定义装饰器的示例详解

    在Python自动化测试中,可以使用自定义的装饰器来给测试方法传递测试数据。本文将通过简单的示例和大家介绍下具体的使用方法,希望对大家有所帮助
    2022-11-11
  • Python中shape[0]、shape[1]和shape[-1]分别的意思详解(附代码)

    Python中shape[0]、shape[1]和shape[-1]分别的意思详解(附代码)

    刚开始使用python做东西,总是不太理解矩阵、数组相关的问题,所以在此记录shape方面的总结,下面这篇文章主要给大家介绍了关于Python中shape[0]、shape[1]和shape[-1]分别是什么意思的相关资料,需要的朋友可以参考下
    2022-11-11
  • 从基础到高级应用详解Python网络通信的完整指南

    从基础到高级应用详解Python网络通信的完整指南

    Python在网络编程领域展现出了强大的versatility和效率,从底层的套接字编程到高级的异步框架,Python提供了丰富的工具和库来满足各种网络通信需求,通过本文我们不仅可以掌握基础的TCP/UDP通信,还能学习HTTP、WebSocket等协议的应用,感兴趣的小伙伴可以了解下
    2026-05-05
  • python编程进阶之异常处理用法实例分析

    python编程进阶之异常处理用法实例分析

    这篇文章主要介绍了python编程进阶之异常处理用法,结合实例形式分析了python异常捕获、处理相关语句、使用技巧与操作注意事项,需要的朋友可以参考下
    2020-02-02
  • 使用pyqt5 实现ComboBox的鼠标点击触发事件

    使用pyqt5 实现ComboBox的鼠标点击触发事件

    这篇文章主要介绍了使用pyqt5 实现ComboBox的鼠标点击触发事件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python3基本输入与输出操作实例分析

    Python3基本输入与输出操作实例分析

    这篇文章主要介绍了Python3基本输入与输出操作,结合实例形式分析了Python3输入输出基本语法、编码转换、注释及中文编码相关使用技巧,需要的朋友可以参考下
    2020-02-02
  • Django中实现点击图片链接强制直接下载的方法

    Django中实现点击图片链接强制直接下载的方法

    这篇文章主要介绍了Django中实现点击图片链接强制直接下载的方法,涉及Python操作图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05

最新评论