में विशिष्ट विशेष तरीकों मैं जो उपयोग "विशेष-तरीकों" वर्गों का एक समूह है:शामिल स्फिंक्स
class Foo(object):
"Foo docstring"
attr1 = "Attribute!" #: first attribute
attr2 = "Another Attribute!" #: second attribute
def __init__(self):
self.x = 12
def say_hello(self):
"""
say_hello(self) -> None
Issue a friendly greeting.
"""
print "Hello! x is {0}".format(self.x)
def __contains__(self,other):
"""Implement ``other in self``"""
return other == self.x
अब मैं इस स्फिंक्स और autodoc प्रयोग करने के लिए एचटीएमएल प्रलेखन उत्पन्न करने के लिए करना चाहते हैं। मैं स्पिंक्स को __contains__
दस्तावेज करने के लिए कैसे कहूं? मैं conf.py
को
autodoc_default_flags = ['members', 'undoc-members', 'special-members']
जोड़ने की कोशिश की, लेकिन वह भी __dict__
जो मैं निश्चित रूप से नहीं चाहिए शामिल थे।
वर्तमान में, जैसे myproject.rst
फ़ाइल देखो के प्रासंगिक अंश:
.. automodule:: myproject.foomodule
:members:
:undoc-members:
:show-inheritance:
संपादित जोड़ने
.. automodule:: myproject.foomodule
:members:
:undoc-members:
:show-inheritance:
.. automethod:: myproject.foomodule.Foo.__contains__
कि विधि के प्रलेखन जोड़ने करता है, लेकिन एक अलग खंड में - नहीं के रूप में Foo
वर्ग दस्तावेज का हिस्सा।
OTTOMH - मेरा मानना है कि आप स्पष्ट हो सकता है और का उपयोग करने के लिए है '.. automethod :: __contains__' के रूप में मैं नहीं मानता कि' विशेष members' छानने के किसी भी रूप को स्वीकार करता है पैरामीटर –
प्रश्न में उदाहरण इस विधि को दस्तावेज करने के लिए बिल्कुल एक आकर्षक केस प्रस्तुत नहीं करता है। '__contains__' को दस्तावेज करने में कोई बात नहीं है अगर यह आपको बताती है कि कोई ऑब्जेक्ट संग्रह का सदस्य है या नहीं। यह [पहले से ही पायथन में प्रलेखित है] (http://docs.python.org/3/reference/datamodel.html#object.__contains__)। आप वर्ग के लिए डॉकस्ट्रिंग में उल्लेख कर सकते हैं कि 'इन' ऑपरेटर समर्थित है। –
@ जोनक्लेमेंट्स - यह करीब लगता है। मैंने उपरोक्त '..automethod' सामान के बाद' .. automethod :: myproject.foomodule.Foo .__ में__'' जोड़ा है और यह दस्तावेज़ को जोड़ा गया है, लेकिन इसे कक्षा से अलग से दस्तावेज किया गया है। – mgilson