在 Python 中,“ i”在 .pyi扩展中表示什么?
.pyi
在 PEP-484中,它提到 .pyi是“一个存根文件”,但没有关于扩展名的助记符。“ i”是指“包含”吗?“执行”?界面?
我认为 .pyi中的 i代表“接口”
i
爪哇咖啡中接口的定义:
Java 编程语言中的接口是一种抽象类型 用于指定类必须实现的行为
每个 Python 模块都由一个 .pyi“ stub”表示 Python 文件(即,它可以由 Python3解释) ,< strong > 除了所有 方法为空 .
存根文件只包含 没有任何实现的模块。
因为“接口”在 Python 中不存在(请参阅 抽象类与接口之间的 SO 问题) ,我认为设计人员打算为它专门设计一个特殊的扩展。
pyi实现“存根”文件(从 Martin Fowler定义)
pyi
存根 : 通常为考试期间打出的电话提供录制的答案 没有任何反应 测试。
但是人们对接口比“存根”文件更熟悉,因此选择 .pyi比选择 .pys更容易,以避免不必要的混淆。
.pys
显然 PyCharm 创建.pyi 文件是为了它自己的目的:
PyCharm 和其他开发工具使用 * . pyi 文件来提供 更多的信息,例如 PEP 484类型提示,超出了它能够从中收集的范围 内省扩展类型和方法 导入、执行或用于提供信息以外的任何其他目的 如果你不使用一个使用.pyi 文件的工具,那么 你可以安全地忽略这个文件。 请参阅: 《 https://www.python.org/dev/peps/pep-0484/》(https://www.python.org/dev/peps/pep-0484/”rel = “ norefrer”) Https://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
PyCharm 和其他开发工具使用 * . pyi 文件来提供 更多的信息,例如 PEP 484类型提示,超出了它能够从中收集的范围 内省扩展类型和方法 导入、执行或用于提供信息以外的任何其他目的 如果你不使用一个使用.pyi 文件的工具,那么 你可以安全地忽略这个文件。
请参阅: 《 https://www.python.org/dev/peps/pep-0484/》(https://www.python.org/dev/peps/pep-0484/”rel = “ norefrer”) Https://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
此评论见于: python27/Lib/site-packages/wx/core.pyi
python27/Lib/site-packages/wx/core.pyi
.pyi中的 i代表“接口”。
.pyi的扩展是在 这个 GitHub 问题的帖子中首次提到的,JukkaL 在其中表示:
我可能更喜欢只有一个点的分机。它还需要是一些不在使用中的东西(cython 不应该使用它,等等)。.Pys 似乎在 Windows 中使用(或曾经使用过)。也许吧 Pyi 我代表的是接口定义?
另一种解释 Wing 无法理解的模块内容的方法是使用 pyi Python Interface 文件。这个文件只是一个 Python 框架,具有与模块中指定的函数、属性、类和方法对应的适当结构、调用签名和返回值。