python - मुझे पायथन स्रोत कोड कैसे व्यवस्थित करना चाहिए?




unit-testing code-organization (2)

जिस तरह से आपको अपना कोड और परीक्षण व्यवस्थित करना चाहिए वही वही है जो आप किसी भी ओओ भाषा के लिए करेंगे।

जिस तरह से मैं करता हूं उससे जवाब। यह सही नहीं हो सकता है लेकिन मेरे लिए काम करता है

  1. इस पर निर्भर करता है कि आपकी कार्यक्षमता कैसे विभाजित होती है। मेरे मुख्य पायथन ऐप के लिए मेरे पास प्रविष्टि बिंदुओं के लिए कक्षाओं के साथ 1 फ़ाइल है और फिर कार्यक्षमता के विभिन्न बिट्स के पैकेज हैं
  2. मैं ग्रहण के लिए PyDev का उपयोग करता हूं और इसे व्यवस्थित करता हूं जैसे कि मैं जावा के लिए करता हूं।
>  Workspace
>     |
>     |-Src
>     |   |-Package1
>     |   |-Package2
>     |   |-main.py
>     |-Test
>         |-TestPackage1
>         |-TestPackage2
  1. सब कुछ का ट्रैक रखने के लिए हर जगह डॉकस्ट्रिंग का प्रयोग करें
  2. यह सुनिश्चित करने के बाद कि प्रासंगिक __init__.py फ़ाइलें फ़ोल्डर में हैं। यह from module import class बस एक साधारण मामला है

मैं पाइथन के साथ शुरू कर रहा हूं (यह उच्च समय है कि मैं इसे एक शॉट देता हूं), और मैं कुछ सर्वोत्तम प्रथाओं की तलाश में हूं।

मेरी पहली परियोजना एक कतार है जो एकाधिक धागे में कमांड लाइन प्रयोग चलाती है। मुझे एक बहुत लंबा main.py फ़ाइल मिलना शुरू हो रहा है, और मैं इसे तोड़ना चाहता हूं। आम तौर पर, मैं देख रहा हूं: पाइथन प्रोग्रामर एकाधिक स्रोत फ़ाइलों को व्यवस्थित कैसे करते हैं? क्या कोई विशेष संरचना है जो आपके लिए काम करती है?

मेरे विशिष्ट प्रश्नों में शामिल हैं:

  1. क्या प्रत्येक वर्ग एक अलग फाइल में होना चाहिए?
  2. मुझे सोर्स कोड के सापेक्ष यूनिट परीक्षण कैसे व्यवस्थित करना चाहिए?
  3. मुझे दस्तावेज़ टिप्पणियां कहां रखनी चाहिए, विशेष रूप से कमांड लाइन ऑपरेशन के लिए?
  4. यदि मैं एकाधिक निर्देशिकाओं का उपयोग करता हूं, तो मैं उनके बीच कक्षाएं कैसे आयात करूं?

मैं शायद परीक्षण और त्रुटि से अपने कुछ निष्कर्ष निकाल सकता हूं, लेकिन मैं कुछ अच्छे से शुरू करना चाहता हूं।


लेख एरिक ने इशारा किया है क्योंकि इसमें बड़े पायथन कोड बेस व्यवस्थित करने के विवरण शामिल हैं।

यदि आप यहां Google से उतरे हैं और यह पता लगाने की कोशिश कर रहे हैं कि एक बड़ी स्रोत फ़ाइल को एकाधिक, अधिक प्रबंधनीय में कैसे विभाजित किया जाए, तो फाइलें संक्षेप में प्रक्रिया को सारांशित करेंगी।

मान लें कि वर्तमान में आपके पास main.py नामक फ़ाइल में main.py :

  • एक ही फ़ोल्डर में एक और स्रोत फ़ाइल बनाएं (चलिए इस उदाहरण के लिए हमारे utils.py को कॉल करें)
  • main.py में utils.py से आपको जो भी कक्षाएं, फ़ंक्शंस, स्टेटमेंट इत्यादि चाहिए, main.py ले utils.py
  • main.py में शीर्ष पर एक पंक्ति जोड़ें: import utils

संकल्पनात्मक रूप से यह एक अन्य स्रोत फ़ाइल में utils नामक एक नया मॉड्यूल बनाने के लिए क्या करता है। इसके बाद आप इसे आयात कर सकते हैं जहां भी इसकी आवश्यकता हो।





code-organization