ठीक है, तो मैं PEP 8 और PEP 257 दोनों पढ़ा है, और मैं कार्य करता है और कक्षाओं के लिए docstrings के बहुत लिखा है, लेकिन मैं क्या एक मॉड्यूल docstring में जाना चाहिए के बारे में थोड़ा अनिश्चित हूँ। मैं लगा, कम से कम, यह कार्य करता है और कक्षाएं कि मॉड्यूल निर्यात दस्तावेज़ चाहिए, लेकिन मैं यह भी है कि लेखक के नाम, कॉपीराइट जानकारी, आदि की सूची में कुछ मॉड्यूल देखा है किसी को भी कैसे एक अच्छा अजगर docstring चाहिए एक उदाहरण है संरचित किया जा सकता है?एक अजगर मॉड्यूल docstring में क्या रखें?
उत्तर
इंटरैक्टिव दुभाषिया के संकेत पर help(yourmodule)
करने वाले किसी के बारे में सोचें - वे क्या चाहते हैं जानना चाहते हैं? (निकालने और जानकारी प्रदर्शित के अन्य तरीकों के बारे में जानकारी की राशि के मामले में मोटे तौर पर help
के बराबर हैं)। तो तुम x.py
में पूछना चाहते हैं तो:
"""This module does blah blah."""
class Blah(object):
"""This class does blah blah."""
तो:
>>> import x; help(x)
शो:
Help on module x:
NAME
x - This module does blah blah.
FILE
/tmp/x.py
CLASSES
__builtin__.object
Blah
class Blah(__builtin__.object)
| This class does blah blah.
|
| Data and other attributes defined here:
|
| __dict__ = <dictproxy object>
| dictionary for instance variables (if defined)
|
| __weakref__ = <attribute '__weakref__' of 'Blah' objects>
| list of weak references to the object (if defined)
जैसा कि आप देख, भी वर्ग (और कार्यों पर विस्तृत जानकारी है, हालांकि मैं मैं यहां एक नहीं दिखा रहा हूं) पहले से ही उन घटकों के डॉकस्ट्रिंग से शामिल है; मॉड्यूल की अपनी docstring उन्हें बहुत सरसरी तौर पर वर्णन करना चाहिए (यदि सभी) और नहीं बल्कि कुछ doctested उदाहरण (केवल कार्य करता है और कक्षाओं में आदर्श doctested जाना चाहिए था उदाहरण की तरह साथ आदर्श, क्या एक पूरे के रूप मॉड्यूल आप के लिए क्या कर सकते हैं की एक संक्षिप्त सारांश पर ध्यान केंद्रित थिट डॉकस्ट्रिंग्स)।
मुझे नहीं पता कि लेखक नाम और कॉपीराइट/लाइसेंस जैसे मेटाडेटा मॉड्यूल के उपयोगकर्ता की सहायता कैसे करता है - यह टिप्पणियों में जा सकता है, क्योंकि इससे मॉड्यूल का पुन: उपयोग या संशोधित करने पर विचार करने में कोई मदद कर सकता है।
के शब्दों में specifications:
एक स्क्रिप्ट (एक स्टैंड-अलोन प्रोग्राम) के docstring जब स्क्रिप्ट गलत या गुम के साथ शुरू हो जाती है इसकी "उपयोग" संदेश, मुद्रित रूप में प्रयोग करने योग्य होना चाहिए "मदद" के लिए तर्क (या शायद "-h" विकल्प के साथ)। इस तरह के एक डॉकस्ट्रिंग को स्क्रिप्ट के फ़ंक्शन और कमांड लाइन सिंटैक्स, पर्यावरण चर, और फ़ाइलों को दस्तावेज करना चाहिए। उपयोग संदेश काफी विस्तृत हो सकते हैं (कई स्क्रीन पूर्ण) और नए उपयोगकर्ता के लिए आदेश का सही उपयोग करने के साथ-साथ परिष्कृत उपयोगकर्ता के लिए सभी विकल्पों और तर्कों के पूर्ण त्वरित संदर्भ के लिए पर्याप्त होना चाहिए।
एक मॉड्यूल आम तौर पर कक्षाएं, अपवाद और कार्य (और किसी भी अन्य वस्तुओं) कि प्रत्येक की एक पंक्ति सारांश के साथ, मॉड्यूल द्वारा निर्यात किया जाता है में सूचीबद्ध करना चाहिए के लिए docstring। (ये सारांश आमतौर पर ऑब्जेक्ट के डॉकस्ट्रिंग में सारांश रेखा से कम विवरण देते हैं।) पैकेज के लिए डॉकस्ट्रिंग (यानी, पैकेज के
__init__.py
मॉड्यूल के डॉकस्ट्रिंग) को पैकेज द्वारा निर्यात किए गए मॉड्यूल और उप-पैकेजों को भी सूचीबद्ध करना चाहिए।वर्ग के लिए डॉकस्ट्रिंग को इसके व्यवहार को सारांशित करना चाहिए और सार्वजनिक विधियों और आवृत्ति चर सूचीबद्ध करना चाहिए। वर्ग subclassed करने का इरादा है, और उपवर्गों के लिए एक अतिरिक्त इंटरफ़ेस है, तो इस इंटरफेस अलग (docstring में) सूचीबद्ध किया जाना चाहिए। क्लास कन्स्ट्रक्टर को
__init__
विधि के लिए डॉकस्ट्रिंग में दस्तावेज किया जाना चाहिए। व्यक्तिगत तरीकों को अपने स्वयं के डॉक्टर द्वारा दस्तावेज किया जाना चाहिए।
एक समारोह या विधि की docstring एक मुहावरा अवधि में समाप्त हो रहा है। यह फ़ंक्शन या विधि के प्रभाव को कमांड के रूप में निर्धारित करता है ("यह करें", "इसे वापस करें"), विवरण के रूप में नहीं; जैसे लिखो "पथनाम लौटाता है ..."। किसी फ़ंक्शन या विधि के लिए एक मल्टीलाइन-डॉकस्ट्रिंग को इसके व्यवहार को सारांशित करना चाहिए और इसके तर्क, वापसी मूल्य, साइड इफेक्ट्स, उठाए गए अपवाद, और जब इसे कॉल किया जा सकता है तो प्रतिबंध (सभी लागू होने पर) को दस्तावेज करना चाहिए। वैकल्पिक तर्क संकेत दिया जाना चाहिए। यह दस्तावेज किया जाना चाहिए कि कीवर्ड तर्क इंटरफ़ेस का हिस्सा हैं या नहीं।
- 1. (अजगर) docstring खरोज त्रुटि
- 2. एक अजगर मॉड्यूल
- 3. एक अजगर मॉड्यूल
- 4. एक सजावट के साथ एक अजगर docstring संशोधित: क्या यह एक अच्छा विचार है?
- 5. एक आयातित अजगर मॉड्यूल
- 6. अजगर मॉड्यूल
- 7. अजगर मॉड्यूल अपने नाम में
- 8. अजगर mysqldb मॉड्यूल
- 9. अजगर गणित मॉड्यूल
- 10. अजगर सीएसवी मॉड्यूल - उद्धरण
- 11. अजगर zipfile मॉड्यूल
- 12. अजगर सीएसवी मॉड्यूल त्रुटि
- 13. अजगर 3.2: sqlite3 मॉड्यूल
- 14. क्या पर्ल के मॉड्यूल-स्टार्टर के बराबर एक अजगर है?
- 15. अजगर पार मॉड्यूल प्रवेश
- 16. epydoc के docstring स्वरूपण से sphinx docstring स्वरूपण में स्विच करने के लिए स्वचालित तरीका?
- 17. चक्रीय मॉड्यूल निर्भरता और अजगर
- 18. ImportError: - कोई मॉड्यूल नामित अजगर
- 19. एम्बेडिंग अजगर - आयात करने मॉड्यूल
- 20. अजगर कक्षा बनाम मॉड्यूल गुण
- 21. अजगर एक ही निर्देशिका में मॉड्यूल के लिए पूर्ण आयात
- 22. अजगर कमांड लाइन मॉड्यूल रन
- 23. अजगर आयातित मॉड्यूल कोई नहीं
- 24. क्या एक अजगर धागा
- 25. क्या अजगर
- 26. कॉन्फ़िगरर्स में केस सुरक्षित रखें?
- 27. कठिनाई पर एक मैक PyEnchant मॉड्यूल अजगर 2.7
- 28. आप शेफ के साथ एक अजगर मॉड्यूल कैसे स्थापित करेंगे?
- 29. अजगर setup.py sdist केवल शीर्ष स्तर मॉड्यूल
- 30. एक रेल मॉड्यूल में mattr_accessor क्या है?
तो, क्या मॉड्यूल के शीर्ष पर टिप्पणियों में लेखक, कॉपीराइट इत्यादि शामिल करना प्रथागत है? –
@ 007brendan, यह बहुत आम प्रथा है, हां। –
@IfLoop मुझे संदेह है कि ऐसे उपयोगकर्ता हैं जो दुभाषिया में 'सहायता()' विधि का उपयोग करते हैं जो उपयोगकर्ताओं को कोड पढ़ते हैं। – confused00