epydoc 和 Sphinx 文档生成器都允许编码器注释任何/所有函数参数的类型。
我的问题是:有没有一种方法(或模块)可以在文档字符串中记录时强制执行这些类型(在运行时)。这不是强类型(编译时检查),但(更有可能)可能被称为固定类型(运行时检查)。也许引发“ValueError”,或者甚至更好……引发“SemanticError”
理想情况下,已经存在类似于xkcdimport antigravity
的“ ”模块的东西(如模块) ,并且这个“firm_type_check”模块已经存在于方便下载的地方。
仅供参考:epydoc 和 sphinz 的文档字符串如下:
epydoc: 函数和方法参数:
- @param p: ... # 函数或方法的参数 p 的描述。
- @type p: ... # 参数 p 的预期类型。
- @return: ... # 函数或方法的返回值。
- @rtype: ... # 函数或方法的返回值的类型。
- @keyword p: ... # 关键字参数 p 的描述。
- @raise e: ... # 对函数或方法引发异常 e 的情况的描述。
Sphinx:在 Python 对象描述指令中,具有这些字段的 reST 字段列表可以很好地识别和格式化:
- param、parameter、arg、argument、key、keyword:参数的描述。
- type:参数的类型。
- raises, raise, except, exception:引发特定异常(以及何时)。
- var、ivar、cvar:变量的描述。
- return,return:返回值的描述。
- rtype:返回类型。
我能找到的最接近的是 Guido 在mail.python.org中的提及,由 Jukka Lehtosalo 在Mypy Examples中创建。 CMIIW:mypy 不能作为 py3 模块导入。
本身不使用文档字符串的类似 stackoverflow 问题: