python中.pyi文件是什么?

这句话说的是pyi模块是为了辅助那些定义不明确的场景的。众所周知,Python是一种弱类型语言,不像C语言、Java语言以及Golang语言那样,在声明的时候必须确定类型,譬如int、string等等。弱类型语言在编写简单代码的时候确实给开发者带来了极大的方便,无需思考类型即可快速声明变量,然而随着代码的复杂程度...
python中.pyi文件是什么?
什么是pyi文件?在哪里可以看到pyi文件?

在Python的世界中,除了源码文件py、字节码文件pyc之外,还有类型指示文件pyi,扩展模块文件pyd和窗口文件pyw等,以后会逐一介绍。今天,先来看看pyi文件,走你!

在Python的PEP 484规范中有这样一段描述:在Python的PEP 484规范中有这样一段描述:This PEP introduces a provisional module to provide these standard definitions and tools, along with some conventions for situations where annotations are not available.

这句话说的是pyi模块是为了辅助那些定义不明确的场景的。

众所周知,Python是一种弱类型语言,不像C语言、Java语言以及Golang语言那样,在声明的时候必须确定类型,譬如int、string等等。弱类型语言在编写简单代码的时候确实给开发者带来了极大的方便,无需思考类型即可快速声明变量,然而随着代码的复杂程度增加,因为缺乏类型检查导致代码出问题的机率大大增加。弱类型语言也需要类型检测了。

那么问题来了,如果直接让Python在语言层面做类型检查就改变了Python弱类型语言的定位,就算Python的作者Guido van Rossum 答应,千千万万的Python开发者也不答应。于是,pyi文件出现了,pyi文件用于做类型检查,其中定义了接口参数的类型和返回值的类ing,但不能独立工作,需结合Pycharm等IDE的 TypeChecker 来工作,检查类型,这样就避免了Python语言层面的修改。

还是直接上代码,在Pycharm中编写如下代码:

这是一段很简单的代码,dir()函数是Python内置函数,用于获取object的属性和方法。按住CTRL+鼠标左键查看dir()函数定义,如下:

在builtins.py中可以看到dir()函数定义,参数和返回值都没有类型,且函数最左边有一个星号,直接点击星号即可进入对应的builtins.pyi文件中

在builtins.pyi中可以看到dir()函数的定义中,参数和返回存在具体类型,并且最左边也有一个星号,点击星号即可回到builtins.py文件中。

至此,我们可以看到要想使用pyi文件,只需要创建一个模块的同名pyi文件,将具备类型约束的函数声明写进去即可,这样就能配合Pycharm的TypeChecker,通过IDE来达到检查类型的目的了。2024-08-28
mengvlog 阅读 155 次 更新于 2025-10-30 05:18:12 我来答关注问题0
檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部