Python3中.pyi文件介绍
Posted fengbingchun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3中.pyi文件介绍相关的知识,希望对你有一定的参考价值。
在看PyTorch代码时,在一些模块中经常会发现.pyi文件,如下图所示,是PyTorch中torch/optim模块中的.pyi文件:
每种实现优化算法的.py文件,都有一个对应的.pyi文件,每个.pyi文件中的内容都相似,仅有类的__init__函数,如SGD优化算法的sgd.pyi内容如下:
from .optimizer import _params_t, Optimizer
class SGD(Optimizer):
def __init__(self, params: _params_t, lr: float, momentum: float=..., dampening: float=..., weight_decay:float=..., nesterov:bool=...) -> None: ...
在Python3中,.pyi文件是存根文件(stub file)。这个"pyi"中的"i"代表接口即interface,作为公共接口。在Python中不存在"interface",只是提供一个特殊的扩展。它是一个普通的Python文件,除了文件中的所有的方法都是空的。
存根文件仅包含模块公共接口的描述,没有任何实现。
.pyi文件中允许使用"..."代替任何实现细节。它是仅包含类型信息的文件,没有运行时代码。
.pyi文件是一个Python skeleton,具有适当的结构、调用签名和返回值,以匹配模块中定义的函数、属性、类和方法。
创建存根文件:
(1).为模块编写一个存根文件,并将其作为.pyi文件存储在与模块相同的目录中;
(2).或者将.pyi文件单独存放在为存根保留的目录中,在这种情况下,需要设置环境变量MYPYPATH。
Wing Python IDE和PyCharm中会涉及到对.pyi文件的设置。
GitHub:https://github.com/fengbingchun/PyTorch_Test
以上是关于Python3中.pyi文件介绍的主要内容,如果未能解决你的问题,请参考以下文章