मैं एक हल्के वर्ग को लिख रहा हूं जिसका गुण सार्वजनिक रूप से सुलभ होने का इरादा है, और कभी-कभी विशिष्ट तत्काल में ओवरराइड किया जाता है। उस मामले के लिए वर्ग विशेषताओं, या किसी भी प्रकार के विशेषताओं के लिए दस्तावेज़ बनाने के लिए पाइथन भाषा में कोई प्रावधान नहीं है। इन विशेषताओं को दस्तावेज करने के लिए स्वीकार्य तरीका क्या होना चाहिए, क्या होना चाहिए?पायथन में कक्षा विशेषताओं को कैसे दस्तावेज़ित करें?
class Albatross(object):
"""A bird with a flight speed exceeding that of an unladen swallow.
Attributes:
"""
flight_speed = 691
__doc__ += """
flight_speed (691)
The maximum speed that such a bird can attain.
"""
nesting_grounds = "Raymond Luxury-Yacht"
__doc__ += """
nesting_grounds ("Raymond Luxury-Yacht")
The locale where these birds congregate to reproduce.
"""
def __init__(self, **keyargs):
"""Initialize the Albatross from the keyword arguments."""
self.__dict__.update(keyargs)
इस वर्ग के प्रारंभिक मानक docstring अनुभाग docstring, साथ ही लाइनों में परिणाम होगा __doc__
को संवर्धित काम के माध्यम से प्रत्येक विशेषता के लिए कहा: वर्तमान में मैं बात की इस तरह कर रहा हूँ।
हालांकि यह शैली docstring style guidelines में स्पष्ट रूप से वर्जित नहीं लगती है, इसे भी एक विकल्प के रूप में नहीं बताया गया है। यहां का लाभ यह है कि यह अपनी परिभाषाओं के साथ विशेषताओं को दस्तावेज करने का एक तरीका प्रदान करता है, जबकि अभी भी एक प्रस्तुत करने योग्य वर्ग डॉकस्ट्रिंग बना रहा है, और डॉकस्ट्रिंग से जानकारी दोहराते हुए टिप्पणियां लिखने से परहेज करता है। मैं अभी भी परेशान हूं कि मुझे वास्तव में गुणों को दो बार लिखना है; मैं कम से कम डिफ़ॉल्ट मानों के डुप्लिकेशंस से बचने के लिए डॉकस्ट्रिंग में मानों के स्ट्रिंग प्रस्तुतियों का उपयोग करने पर विचार कर रहा हूं।
क्या यह इस समुदाय के सम्मेलनों का एक गंभीर उल्लंघन है? क्या यह सही है? क्या कोई बेहतर तरीका है? उदाहरण के लिए, गुणों के लिए मूल्यों और डॉकस्ट्रिंग वाले शब्दकोश बनाना संभव है और फिर कक्षा __dict__
में सामग्री जोड़ें और कक्षा घोषणा के अंत की ओर डॉकस्ट्रिंग; यह विशेषता नाम और मानों को दो बार टाइप करने की आवश्यकता को कम करेगा। संपादित करें: यह आखिरी विचार है, मुझे लगता है कि वास्तव में संभव नहीं है, कम से कम गति से डेटा से पूरी कक्षा का निर्माण नहीं किया जाता है, जो वास्तव में एक बुरा विचार लगता है जब तक कि ऐसा करने का कोई अन्य कारण न हो।
मैं अजगर के लिए काफी नया हूं और अभी भी कोडिंग शैली के विवरण का काम कर रहा हूं, इसलिए असंबद्ध आलोचनाओं का भी स्वागत है।
यदि आप Django मॉडल विशेषताओं को दस्तावेज करने का कोई तरीका ढूंढ रहे हैं, तो यह सहायक हो सकता है: https://djangosnippets.org/snippets/2533/ –
डुप्लिकेट [पायथन में फ़ील्ड और गुणों को कैसे दस्तावेज़ित करें?] (Http : //stackoverflow.com/questions/6060813/how-to-document-fields-and-properties-in-python) जिसमें एक अलग समाधान है। – bufh