【发布时间】:2011-09-09 16:31:29
【问题描述】:
在创建 Python 的 C 扩展时,是否有可能以某种方式编写以 docstrings 形式向扩展用户公开的 cmets?
【问题讨论】:
-
您可能已经意识到这一点,但如果没有:您可能想要调查 Cython。您编写 Python 风格的代码,添加一些类型声明,然后将其翻译为 C 并编译。
标签: python cpython python-c-extension
在创建 Python 的 C 扩展时,是否有可能以某种方式编写以 docstrings 形式向扩展用户公开的 cmets?
【问题讨论】:
标签: python cpython python-c-extension
types 的文档字符串可以作为tp_doc 成员包含在PyTypeObject 结构中,请参阅an example in the docs。
函数的文档字符串可以包含在module's method table 的ml_doc 字段中。如果您希望您的文档字符串“物理上接近”实际函数,您可以在方法表中引用的函数定义上方包含字符串常量。
方法的文档字符串可以分配给type's member table中的doc字段。
模块的文档字符串可以作为参数传递给Py_InitModule3() 或Py_InitModule4() 函数。
更新:Python3 不支持Py_InitModule3(),方法已替换为PyModule_Create()。
【讨论】: