So geben Sie DocString für __init__ in der Python C-Erweiterung an

9

Vielleicht eine dumme Frage: Wie kann man DocString für spezielle Funktionen wie __init__ beim Schreiben einer C-Erweiterung angeben? Für gewöhnliche Methoden enthält die Methodentabelle Bestimmungen für Docstrings. Die folgende automatisch generierte Dokumentation wird angezeigt, wenn ich help (myclass) versuche:

%Vor%

Aber das ist was ich übersteuern möchte.

    
subhacom 11.08.2012, 09:27
quelle

1 Antwort

1

Ich denke, es ist am üblichsten, die Definitionen für die verschiedenen Funktionen einfach in tp_doc zu belassen und es einfach so zu belassen. Sie können dann tun, was Sie sagen, und sich das Dokument Ihres Objekts ansehen. Dies geschieht in der gesamten Standardbibliothek.

Sie haben wirklich keine Möglichkeit, __doc__ in die verschiedenen Slots ( tp_init usw.) zu schreiben, da sie beim Aufruf von wrapper_descriptor von einem PyType_Ready umschlossen sind und der Docstring von a wrapper_descriptor ist schreibgeschützt.

Ich denke, dass es möglich ist, die Slots zu überspringen und Ihre Methode (z. B. __init__ ) zu Ihrer MemberDefs hinzuzufügen, aber das habe ich noch nie probiert.

    
Nathan Binkert 19.08.2012 04:58
quelle