tl; डॉ: के लिए वैश्विक/सार्वजनिक नाम XORcist तरह AllCaps
का उपयोग कहा:
class Logger:
pass
AliasLogger = Logger
समारोह के लिए पैरामीटर और फ़ंक्शन लोकल, यह स्पष्ट करें कि आप क्लास ऑब्जेक्ट से इस तरह के वर्णनात्मक नाम से निपट रहे हैं:
def some_func(logger_class):
pass
या कुछ लाइनों
def some_func(my_class_classobj):
pass
जब शब्द "class"
अपने classname में वास्तव में है के साथ। classobj
के लिए, class_
और klass
देखें।
विश्लेषण/प्रेरणा (लंबे संस्करण)
कोई पूरी तरह से पढ़ने के लिए, लेकिन एक नज़र PEP 8 पर (उस बात के लिए न तो गूगल के अजगर शैली गाइड) इस पर स्पष्ट होना प्रतीत नहीं होता है।
के बाद से एक चर नाम सिर्फ शायद अभी तक एक और name binding अजगर में, मेरी राय में यह वास्तव में कोई फर्क नहीं पड़ता कि आप के लिए बाध्य है कि परिभाषा ब्लॉक के साथ या बाद में किसी वस्तु को =
बराबर के चिह्न के साथ नाम।
इस मुझे लगता है कि मॉड्यूल स्तर "उर्फ" संदर्भ में XORcist से सहमत अपनी कक्षा नामकरण मानक का पालन करना चाहिए के लिए, शायद एच.टी.एम.एल. टैगों:
class MyClass(object):
pass
# good
ReferenceToClass = MyClass
हालांकि जब यह पैरामीटर और चर नाम की बात आती है, माना जाता है lowercase_underscores
आवेदन करना चाहिए , सही? मैं केवल इतना ही नाखुश हूं, क्योंकि यह आपको उदाहरण बनाम कक्षा संदर्भ अस्पष्टता में धक्का देगा। ऐसी संभावना है कि एक ऑब्जेक्ट-लोअरकेस नाम वस्तु को एक उदाहरण होने का संकेत देने का प्रयास हो सकता है।उस बात के लिए, मैं अपने सभी लोअरकेस postfixing सलाह देते हैं, वर्ग को संदर्भित "वर्ग" प्रत्यय के साथ चर नाम, इस तरह:
class Logger(object):
pass
def function_expecting_class_reference(logger_class):
pass
मैं अपने उदाहरण वर्ग MyClass
Logger
क्योंकि वास्तविक परिदृश्यों केवल कुछ ही कक्षा में नाम बदला नाम में स्ट्रिंग "class"
है। हालांकि उस बाद के मामले में मैं अब तक वर्णनात्मक नामकरण के साथ अस्पष्टता से बचने का प्रस्ताव करता हूं।
class MyClass(object):
pass
def function_expecting_class_reference(another_param, my_class_classobj):
ReferenceToClass = MyClass
एक अन्य विकल्प मैं लग जाते हैं my_class_klass
की तरह, प्रत्यय klass
उपयोग करने के लिए है: उदाहरण के लिए, यदि आप एक classobj
प्रत्यय का उपयोग कर सकते हैं। हर किसी को उत्तरार्द्ध नहीं लगता है, लेकिन फिर भी मुझे यह जांचना है कि क्या वे पूर्व को बेहतर तरीके से प्राप्त करेंगे या नहीं।
संदर्भ टॉक्लास बिल्कुल MyClass के समान है (अर्थात्)। दोनों वेरिएबल्स हैं जो एक ही क्लास ऑब्जेक्ट को संदर्भित करते हैं। – Kos