पायथन फ़ाइल नामकरण सम्मेलन?


137

मैंने PEP-8 https://www.python.org/dev/peps/pep-0008/#package-and-module-names का यह भाग देखा है

मैं इस बारे में स्पष्ट नहीं हूं कि यह मॉड्यूल / क्लास / पैकेज के फ़ाइल नाम को संदर्भित करता है या नहीं।

अगर मेरे पास प्रत्येक का एक उदाहरण है, तो क्या फिल्म के सभी उपयुक्त मामलों में अंडरस्कोर के साथ उचित होना चाहिए? या कुछ और?


4
tl; dr: दो कक्षाएं FooBarऔर FooBizदोनों फाइल में जा सकते हैं (इस प्रकार ) somepkg/foobar.py: from somepkg.foobar import FooBarलेकिन क्लास में TimerErrorजा सकते हैं except/timer_error.py(इस प्रकार from except.timer_error import TimerError), क्योंकि CamelCaseकभी-कभी हटाने से शब्द पढ़ने के लिए कठिन snake_caseहो जाता है , इस प्रकार इसका उपयोग फ़ाइल नाम के लिए किया जा सकता है।
माइकल

जवाबों:


156

उद्धरण https://www.python.org/dev/peps/pep-0008/#package-and-module-names :

मॉड्यूल में छोटे, सभी-लोअरकेस नाम होने चाहिए। अगर यह पठनीयता में सुधार करता है तो अंडरस्कोर मॉड्यूल के नाम में इस्तेमाल किया जा सकता है। पायथन पैकेज में भी छोटे, सभी-लोअरकेस नाम होने चाहिए, हालांकि अंडरस्कोर का उपयोग हतोत्साहित किया जाता है।

के लिए कक्षाएं :

क्लास के नामों को आम तौर पर कैपेसिस सम्मेलन का उपयोग करना चाहिए।

और फ़ंक्शन और (स्थानीय) चर नाम होना चाहिए:

लोअरकेस, पठनीयता में सुधार के लिए आवश्यक के रूप में अंडरस्कोर द्वारा अलग किए गए शब्दों के साथ

मॉड्यूल, वर्ग और पैकेज के बीच अंतर के लिए यह उत्तर देखें :

  • एक पायथन मॉड्यूल बस एक पायथन स्रोत फ़ाइल है, जो कक्षाओं, कार्यों और वैश्विक चर को उजागर कर सकता है।
  • एक पायथन पैकेज केवल पायथन मॉड्यूल (एस) की एक निर्देशिका है।

तो PEP 8 आपको बताता है कि :

  • मॉड्यूल (फ़ाइलनाम) में छोटे, सभी-लोअरकेस नाम होने चाहिए , और वे अंडरस्कोर हो सकते हैं;
  • पैकेज (निर्देशिका) में छोटे, सभी-लोअरकेस नाम होने चाहिए , अधिमानतः बिना अंडरस्कोर के;
  • कक्षाओं को कैपिसन सम्मेलन का उपयोग करना चाहिए।

पीईपी 8 बताता है कि नाम कम होना चाहिए ; यह उत्तर चर नाम बनाते समय क्या ध्यान रखना चाहिए, इसका एक अच्छा अवलोकन देता है, जो अन्य नामों (कक्षाओं, पैकेजों आदि के लिए) पर भी लागू होता है:

  • चर नाम पूर्ण विवरणक नहीं हैं;
  • टिप्पणियों में विवरण डालें;
  • बहुत विशिष्ट नाम का अर्थ बहुत विशिष्ट कोड हो सकता है;
  • त्वरित खोज के लिए छोटे दायरे रखें;
  • पठनीयता के बारे में सोचने में समय व्यतीत करें।

समाप्त करने के लिए, नामकरण सम्मेलनों का एक अच्छा अवलोकन Google पायथन स्टाइल गाइड में दिया गया है ।


5
और मैं शर्मिंदगी से अपनी समझ की पुष्टि करने के लिए कहूंगा, मॉड्यूल में कक्षाएं होती हैं - इसलिए आप मॉड्यूल के भीतर कक्षाओं का उपयोग करेंगे और एक मॉड्यूल में कई वर्ग हो सकते हैं?
अंधेरा

6
हां, आपके पास एक मॉड्यूल में 0, 1 या अधिक कक्षाएं हो सकती हैं।
agold

1
मुझे खुशी है कि मुझे यह समय से पहले मिल गया जब मेरी परियोजना हाथ से निकल गई, क्योंकि मेरे सभी पैकेज मेरी कक्षाओं की तरह कैप्सस्क्रिप्ट सम्मेलन का अनुसरण कर रहे थे।
बास जैंसेन

1
@pypmannetjies यह वास्तव में एक और सवाल है, लेकिन मैं कहूंगा कि आपको कम समझने योग्य नामों पर लंबे समय तक समझने वाले नामों को पसंद करना चाहिए।
agold

1
पैकेज के नाम के लिए, यह कहता है "अंडरस्कोर का उपयोग हतोत्साहित किया जाता है", निषिद्ध नहीं। अजगर दर्शन में, आपको नियम का पालन करना चाहिए, "हालांकि व्यावहारिकता शुद्धता को हराती है"। बेशक, सबसे अच्छा एक तरह से नियम का पालन करने के लिए मिल रहा है और व्यावहारिक हो (, शायद कई संकुल बनाने के नाम विभाजित करने के लिए some> long> nameके बजाय somelongname?)
Juh_

0

यहाँ विभिन्न प्रकार के पायथन नाम सम्मेलनों की एक कड़ी है।

पायथन के लिए स्टाइल गाइड गुइडो के नामकरण सम्मेलन की सिफारिशों पर आधारित है।

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.