How to display the arguments of a Cython function in the documentation?
下面的代码定义了一个简单的cython函数(为了方便起见,使用ipython magic)。
1 2 3 4 | %load_ext cython %%cython def f(float x, float y=2): return x+y |
然后,调用
1 2 3 | Help on built-in function f in module _cython_magic_e37eeabbc63d5167217465ba978239fc: f(...) |
号
注意,没有显示
如果不使用Cython定义此函数:
1 2 | def g(x, y=2): return x+y |
打电话给
1 2 3 | Help on function g in module __main__: g(x, y=2) |
。
有没有一种方法可以让这种行为和赛通功能联系起来?我试过用伊普西顿魔法,但没有成功。
不同意商定的答案。
虽然启用
仅启用docstring而不产生副作用的正确标志是
它既可以用作所有函数之上的decorator-
来自文档:
embedsignature (True / False)
If set to True, Cython will embed a textual copy of the call signature in the docstring of all Python visible functions and
classes. Tools like IPython and epydoc can thus display the signature,
which cannot otherwise be retrieved after compilation. Default is
False.
号
1 2 3 4 5 | import cython @cython.binding(True) def f(float x, float y=2): # ... |
现在
Help on cython_function_or_method in module cy_exc:
f(x, y=2.0)
号
文件上说
When enabled, functions will bind to an instance when looked up as a class attribute (hence the name) and will emulate the attributes of Python functions, including introspections like argument names and annotations. Default is False.
号
您可以以其他方式启用编译选项(例如,如果希望在任何地方都启用它)。
你可能还想看看这个相关的问题