문제
내가 전화 할 때
help(Mod.Cls.f)
(모드는 C 확장 모듈입니다), 출력을 얻습니다.
Help on method_descriptor: f(...) doc_string
도움말 출력이 양식이되도록 무엇을해야합니까?
Help on method f in module Mod: f(x, y, z) doc_string
예를 들어 Random.random.shuffle입니다.
내 pymethoddef 항목은 현재입니다.
{ "f", f, METH_VARARGS, "doc_string" }
해결책
당신은 할 수 없습니다. 'pydoc'및 'help ()'사용 인 검사 모듈은 C 함수의 정확한 서명이 무엇인지 파악할 방법이 없습니다. 당신이 할 수있는 최선은 내장 기능이하는 일입니다. Docstring의 첫 번째 줄에 서명을 포함시킵니다.
>>> help(range)
Help on built-in function range in module __builtin__:
range(...)
range([start,] stop[, step]) -> list of integers
...
random.shuffle의 docstring이 "올바른"이유는 C 함수가 아니기 때문입니다. 파이썬으로 작성된 함수입니다.
다른 팁
물론 토마스의 대답은 옳습니다.
나는 많은 C 확장 모듈에 표준 함수 서명 및 기타 동적 언어 기능 (예 : 디스크립터 프로토콜)을 지원할 수 있도록 Python "Wapper"를 가지고 있다고 덧붙였다.
제휴하지 않습니다 StackOverflow