私はCエクステンションを書いています。私は自分のメソッドのシグネチャをイントロスペクションで見えるようにしたいと思います。Python Cの拡張機能:ドキュメンテーションのためのメソッドシグネチャ?
今、もし私がモジュールをロードし、その助けを見て(...それを構築した後)static PyObject* foo(PyObject *self, PyObject *args) {
/* blabla [...] */
}
PyDoc_STRVAR(
foo_doc,
"Great example function\n"
"Arguments: (timeout, flags=None)\n"
"Doc blahblah doc doc doc.");
static PyMethodDef methods[] = {
{"foo", foo, METH_VARARGS, foo_doc},
{NULL},
};
PyMODINIT_FUNC init_myexample(void) {
(void) Py_InitModule3("_myexample", methods, "a simple example module");
}
:私はなりたい
Help on module _myexample:
NAME
_myexample - a simple example module
FILE
/path/to/module/_myexample.so
FUNCTIONS
foo(...)
Great example function
Arguments: (timeout, flags=None)
Doc blahblah doc doc doc.
:
>>> import _myexample
>>> help(_myexample)
私が取得しますさらに特定して置き換えることができるfoo(...)foo(タイムアウト、フラグ=なし)
これを行うことはできますか?どうやって?
'inspect.signature'でこの仕事をしていますか? – Eric
@Ericはい、上記の '__text_signature__'の規則に従っている限りです。 – MSeifert
「numpy」がパッチを必要とするようなものです – Eric