在Python中,“。i”扩展名中的“ i”代表什么?
在PEP-484中,它提到.pyi是“存根文件”,但扩展名上没有助记符。那么“ i”是指“包含”吗?“实施”?“接口”?
在Python中,“。i”扩展名中的“ i”代表什么?
在PEP-484中,它提到.pyi是“存根文件”,但扩展名上没有助记符。那么“ i”是指“包含”吗?“实施”?“接口”?
pyi。
Answers:
我认为iin.pyi代表“接口”
Java接口的定义:
Java编程语言中的接口是一种抽象类型,用于指定类必须实现的行为
每个Python模块都由一个
.pyi“存根”表示。这是一个普通的Python文件(即可以由Python 3解释),但所有方法均为空。
存根文件仅包含模块公共接口的描述,而没有任何实现。
因为“接口”在Python中不存在(请参见Abstract类和Interface之间的SO问题),所以我认为设计人员打算为其专门进行扩展。
pyi实现“存根”文件(来自Martin Fowler的定义)
存根(Stub):为测试期间进行的通话提供固定答案,通常对测试中未编程的内容完全不响应。
但是人们比“存根”文件更熟悉接口,因此选择.pyi它比.pys避免不必要的混乱更容易。
显然,PyCharm创建.pyi文件是出于其自身的目的:
* .pyi文件被PyCharm和其他开发工具用来提供更多信息,例如PEP 484类型提示,而无法从扩展类型和方法的自省中收集信息。除向工具提供信息外,不得将其导入,执行或用于任何其他目的。如果您不使用使用.pyi文件的工具,则可以放心地忽略此文件。
参见:https : //www.python.org/dev/peps/pep-0484/ https://www.jetbrains.com/help/pycharm/2016.1/type-hinting-in-pycharm.html
在以下位置找到此评论: python27/Lib/site-packages/wx/core.pyi
将i在.pyi表示“接口”。
该.pyi扩展首先在此GitHub问题线程中提到,JukkaL说:
我可能更希望只使用一个点的扩展名。它还需要是未使用的东西(cython等不应使用)。.pys似乎已在Windows中使用(或曾经)。也许.pyi,我代表接口定义在哪里?
pyi扩展用于为Cognos模型文件。也许您正在看的pyc文件扩展名为Python Script Compiled。尝试将校验和与实际pyc文件进行比较,然后知道它至少是一个二进制文件。