जवाबों:
बस निब। कक्षा एनब का नाम, एक राजधानी एन के साथ। नामकरण सम्मेलनों और अन्य शैली सलाह पर अधिक के लिए, PEP 8 , पायथन शैली गाइड देखें।
Client
, और समझ में आता है कि मैं अक्सर इसका उदाहरण देता हूं जिसे मैं कॉल करना चाहता हूं client
। लेकिन आपके सम्मेलन के अनुसार, मॉड्यूल का नाम होगा client
, और इसलिए मुझे हमेशा अपने उदाहरणों को कुछ अप्राकृतिक नाम देना होगा client_instance
। आप इस समस्या के बारे में क्या सोचते हैं?
Client
, फिर यह वर्ग नाम के साथ टकराएगा Client
। चूंकि केवल 3 संभावित नामकरण संस्करण हैं ( client
, Client
या CLIENT
) वहाँ हमेशा दो उदाहरणों, वर्गों, मॉड्यूल या स्थिरांक के बीच टकराव होगा। मेरा मानना है कि कम बार आप अपने मॉड्यूल को एक उदाहरण के रूप में या कक्षा की तुलना में स्थिर नाम देते हैं, और इसलिए अन्य संभावनाओं का बेहतर नामकरण सम्मेलन है। यह मॉड्यूल से आयात करने को भी अधिक पठनीय बना देगा क्योंकि आप आमतौर पर चर के बजाय कक्षाओं और स्थिरांक का आयात करते हैं।
मैं इसे nib.py कहूँगा। और मैं कक्षा का नाम निब भी रखूंगा।
एक बड़े अजगर प्रोजेक्ट में, जिस पर मैं काम कर रहा हूं, हमारे पास मूल रूप से एक महत्वपूर्ण वर्ग को परिभाषित करने वाले बहुत सारे मॉड्यूल हैं। कक्षाओं को एक बड़े अक्षर से शुरू किया जाता है। मॉड्यूल को लोअरकेस में वर्ग की तरह नाम दिया गया है। इससे आयात निम्नलिखित की तरह होता है:
from nib import Nib
from foo import Foo
from spam.eggs import Eggs, FriedEggs
यह जावा के तरीके का अनुकरण करने जैसा है। प्रति फ़ाइल एक वर्ग। लेकिन अतिरिक्त लचीलेपन के साथ, यदि आप समझ में आता है कि आप किसी अन्य वर्ग को एकल फ़ाइल में जोड़ सकते हैं।
मुझे पता है कि मेरा समाधान पाइथोनिक दृष्टिकोण से बहुत लोकप्रिय नहीं है, लेकिन मैं एक मॉड्यूल-> एक वर्ग के जावा दृष्टिकोण का उपयोग करना पसंद करता हूं, जिसका नाम वर्ग है। मुझे अजगर की शैली के पीछे का कारण समझ में आता है, लेकिन मुझे बहुत बड़ी फाइल रखने का शौक नहीं है, जिसमें बहुत सारी कक्षाएं हैं। मुझे तह करने के बावजूद ब्राउज़ करना मुश्किल लगता है।
एक अन्य कारण संस्करण नियंत्रण है: एक बड़ी फ़ाइल होने का मतलब है कि आपके कमिट उस फ़ाइल पर ध्यान केंद्रित करते हैं। इससे संभावित रूप से सुलझने के लिए अधिक मात्रा में संघर्ष हो सकता है। आप अतिरिक्त लॉग जानकारी को भी ढीला करते हैं जो आपकी प्रतिबद्ध विशिष्ट फ़ाइलों को संशोधित करती है (इसलिए विशिष्ट कक्षाएं शामिल हैं)। इसके बजाय आप मॉड्यूल फ़ाइल में एक संशोधन देखते हैं, केवल यह समझने के लिए कि क्या संशोधन किया गया है, टिप्पणी करें।
ऊपर जाकर, यदि आप अजगर दर्शन को पसंद करते हैं, तो अन्य पदों के सुझावों के लिए जाएं। यदि आप इसके बजाय जावा-जैसे दर्शन पसंद करते हैं, तो Nib.py युक्त वर्ग Nib बनाएँ।
spyder
नेविगेशन की सहायता के लिए अपनी कक्षाओं का सारांश देखने के लिए या एक समान संपादक का उपयोग करें , और दोनों पर एक ही फ़ाइल के साथ दो पैन खोलें। इसके अलावा, कृपया PEP8 पढ़ें। अजगर पायथन और जावा के लिए जावा लिखने के लिए है, लेकिन पायथन जावा लिखने के लिए नहीं है ।
नीब ठीक है। यदि संदेह है, तो पायथन शैली गाइड का संदर्भ लें।
से पीईपी 8 :
पैकेज और मॉड्यूल नाम मॉड्यूल में छोटे, सभी-लोअरकेस नाम होने चाहिए। यदि यह पठनीयता में सुधार करता है तो अंडरस्कोर मॉड्यूल के नाम में उपयोग किया जा सकता है। पायथन पैकेज में भी छोटे, सभी-लोअरकेस नाम होने चाहिए, हालांकि अंडरस्कोर का उपयोग हतोत्साहित किया जाता है।
चूँकि मॉड्यूल नामों को नाम दर्ज करने के लिए मैप किया जाता है, और कुछ फ़ाइल सिस्टम असंवेदनशील और लंबे नामों को काटते हैं, इसलिए यह महत्वपूर्ण है कि मॉड्यूल नामों को काफी कम चुना जाए - यह यूनिक्स पर कोई समस्या नहीं होगी, लेकिन यह एक हो सकता है समस्या जब कोड को पुराने मैक या विंडोज संस्करण या डॉस में ले जाया जाता है।
जब C या C ++ में लिखे गए एक्सटेंशन मॉड्यूल में एक साथ पायथन मॉड्यूल होता है जो उच्च स्तर (जैसे अधिक ऑब्जेक्ट ओरिएंटेड) इंटरफ़ेस प्रदान करता है, C / C ++ मॉड्यूल में एक प्रमुख अंडरस्कोर (जैसे _socket) होता है।
से पीईपी-8: पैकेज और मॉड्यूल नाम :
मॉड्यूल में छोटे, सभी-लोअरकेस नाम होने चाहिए। यदि यह पठनीयता में सुधार करता है तो अंडरस्कोर मॉड्यूल के नाम में उपयोग किया जा सकता है।
पायथन पैकेज में भी छोटे, सभी-लोअरकेस नाम होने चाहिए, हालांकि अंडरस्कोर का उपयोग हतोत्साहित किया जाता है।
जब C या C ++ में लिखे गए एक्सटेंशन मॉड्यूल में एक साथ पायथन मॉड्यूल होता है जो उच्च स्तर (जैसे अधिक ऑब्जेक्ट ओरिएंटेड) इंटरफ़ेस प्रदान करता है, C / C ++ मॉड्यूल में एक प्रमुख अंडरस्कोर (जैसे _socket) होता है।
अजगर में फू मॉड्यूल जावा में एक फू कक्षा फ़ाइल के बराबर होगा
या
foobar अजगर में मॉड्यूल एक के बराबर होगा FooBar जावा में वर्ग फ़ाइल