Python中的pyi文件浅析

本文介绍了Python中的pyi文件,它是如何在弱类型语言中进行类型检查的辅助工具,通过配合Pycharm的TypeChecker,实现接口参数和返回值类型的定义。通过实例演示了如何创建和使用pyi文件进行类型约束。
摘要由CSDN通过智能技术生成

什么是pyi文件?在哪里可以看到pyi文件?

在Python的世界中,除了源码文件py、字节码文件pyc之外,还有类型指示文件pyi,扩展模块文件pyd和窗口文

件pyw等,以后会逐一介绍。今天,先来看看pyi文件,走你!

1、pyi文件定义

在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语言层面的修改。

2、pyi文件实例

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

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Demo代码

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

dir()函数定义,如下:

dir()函数定义

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

进入对应的builtins.pyi文件中

dir()函数对应的pyi文件

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

即可回到builtins.py文件中。

至此,我们可以看到要想使用pyi文件,只需要创建一个模块的同名pyi文件,将具备类型约束的函数声明写进去即

可,这样就能配合Pycharm的 TypeChecker,通过IDE来达到检查类型的目的了。

以上就是“Python中的pyi文件浅析”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值