2016-08-07 4 views
1

순수 파이썬에서 함수를 정의 할 때 help을 호출 할 때 해당 함수의 서명이 표시됩니다. 예를 들어 :C/API에서 파이썬 함수 서명 지정

static PyObject* 
mod_hello(PyObject* self, PyObject* args) 
{ 
    const char* name; 
    if (!PyArg_ParseTuple(args, "s", &name)) 
     return NULL; 
    printf("Hello %s\n", name); 
    Py_RETURN_NONE; 
} 

static PyMethodDef HelloMethods[] = 
{ 
    {"hello", mod_hello, METH_VARARGS, "Greet somebody."}, 
    {NULL, NULL, 0, NULL} 
}; 

이 수율 :

>>> help(hello) 
Help on built-in function hello in module hello: 

hello(...) 
    Greet somebody. 

모든 아이디어를 어떻게에서

>>> def hello(name): 
... """Greet somebody.""" 
... print "Hello " + name 
... 
>>> help(hello) 
Help on function hello in module __main__: 

hello(name) 
    Greet somebody. 

>>> 

C/API에 파이썬 함수를 정의하지만, 그 서명은 기본 정보 부족 C/API를 사용하여 hello(...)에서 hello(name)으로 서명을 변경 하시겠습니까? 내가 더 완전한를 게시 한

static PyMethodDef HelloMethods[] = 
{ 
    {"hello", mod_hello, METH_VARARGS, "hello(name, /)\n--\n\nGreet somebody."}, 
    {NULL, NULL, 0, NULL} 
}; 

참고 :

+3

http://stackoverflow.com/questions/1104823/python-c-extension-method-signatures-for-documentation을 읽었습니까? – boardrider

답변

1

당신은 inspect이 (3.4 이상이 파이썬 작동 적어도)을 추출 할 수있는 방법으로 함수 문서화 문자열에 앞에 붙이는 서명을 포함 할 수 있습니다 좀 더 깊이있는 규칙과 메커니즘을 설명하는 대답 here.