पायथन में पहचानकर्ताओं (जैसे चर नाम) के लिए मान्य और अमान्य नाम और नामकरण परंपराएं

व्यापार

पायथन में, पहचानकर्ताओं (चरों, कार्यों, वर्गों, आदि के नाम) को नियमों के अनुसार परिभाषित करने की आवश्यकता होती है। नियमों का पालन नहीं करने वाले नामों को पहचानकर्ता के रूप में उपयोग नहीं किया जा सकता है और इसके परिणामस्वरूप एक त्रुटि होगी।

निम्नलिखित जानकारी यहाँ प्रदान की गई है।

  • ऐसे वर्ण जिनका उपयोग पहचानकर्ताओं (नामों) में किया जा सकता है और नहीं किया जा सकता है
    • ASCII वर्ण
    • यूनिकोड वर्ण
      • सामान्यीकरण (जैसे गणित में)
  • जांचें कि क्या स्ट्रिंग एक मान्य पहचानकर्ता है:isidentifier()
  • ऐसे शब्द जिनका उपयोग पहचानकर्ता (नाम) के रूप में नहीं किया जा सकता (आरक्षित शब्द)
  • ऐसे शब्द जिनका उपयोग पहचानकर्ता (नाम) के रूप में नहीं किया जाना चाहिए
  • PEP8 के लिए नामकरण परंपराएं

निम्नलिखित विवरण पायथन 3 में दिया गया है, और पायथन 2 में भिन्न हो सकता है।

ऐसे वर्ण जिनका उपयोग पहचानकर्ताओं (नामों) में किया जा सकता है और नहीं किया जा सकता है

उन वर्णों को इंगित करता है जिनका उपयोग पहचानकर्ता (नाम) के रूप में किया जा सकता है और नहीं किया जा सकता है।

इसके अलावा, हालांकि लिखने के लिए बहुत सी चीजें हैं, मूल रूप से आपको केवल निम्नलिखित याद रखने की आवश्यकता है।

  • अपरकेस और लोअरकेस अक्षरों, संख्याओं और अंडरस्कोर का प्रयोग करें।
  • पहला (पहला) अक्षर एक संख्या नहीं हो सकता।

ASCII वर्ण

पहचानकर्ता (नाम) के रूप में उपयोग किए जा सकने वाले ASCII वर्ण अपरकेस और लोअरकेस अक्षर (A~Z,a~z), संख्याएं (0~9), और अंडरस्कोर (_) हैं। वर्णमाला केस-संवेदी है।

AbcDef_123 = 100
print(AbcDef_123)
# 100

अंडरस्कोर के अलावा अन्य प्रतीकों का उपयोग नहीं किया जा सकता है।

# AbcDef-123 = 100
# SyntaxError: can't assign to operator

साथ ही, शुरुआत (प्रथम अक्षर) में संख्याओं का उपयोग नहीं किया जा सकता है।

# 1_abc = 100
# SyntaxError: invalid token

शुरुआत में अंडरस्कोर का भी इस्तेमाल किया जा सकता है।

_abc = 100
print(_abc)
# 100

हालाँकि, ध्यान दें कि शुरुआत में एक अंडरस्कोर का एक विशेष अर्थ हो सकता है।

यूनिकोड वर्ण

पायथन 3 के बाद से, यूनिकोड वर्णों का भी उपयोग किया जा सकता है।

変数1 = 100
print(変数1)
# 100

सभी यूनिकोड वर्णों का उपयोग नहीं किया जा सकता है, और यूनिकोड श्रेणी के आधार पर, कुछ का उपयोग नहीं किया जा सकता है। उदाहरण के लिए, विराम चिह्न और चित्रलेख जैसे प्रतीकों का उपयोग नहीं किया जा सकता है।

# 変数。 = 100
# SyntaxError: invalid character in identifier

# ☺ = 100
# SyntaxError: invalid character in identifier

उपयोग किए जा सकने वाले यूनिकोड श्रेणी कोड के लिए आधिकारिक दस्तावेज़ीकरण देखें।

कई मामलों में, चीनी अक्षरों आदि का उपयोग करने का कोई फायदा नहीं है, केवल इसलिए कि यूनिकोड वर्णों का भी उपयोग किया जा सकता है (बिना त्रुटि के)।

सामान्यीकरण (जैसे गणित में)

व्याख्या के लिए यूनिकोड वर्णों को सामान्यीकृत रूप NFKC में बदल दिया जाता है। उदाहरण के लिए, पूर्ण-चौड़ाई वाले अक्षर आधी-चौड़ाई वाले अक्षर (ASCII वर्ण) में परिवर्तित हो जाते हैं।

ध्यान दें कि भले ही स्रोत कोड एक अलग प्रदर्शन दिखाता है, इसे एक ही वस्तु माना जाता है और इसे अधिलेखित कर दिया जाएगा।

ABC = 100
ABC = -100

print(ABC)
# -100

print(ABC)
# -100

print(ABC is ABC)
# True

जांचें कि क्या स्ट्रिंग एक मान्य पहचानकर्ता है: isidentifier ()

एक स्ट्रिंग एक पहचानकर्ता के रूप में मान्य है या नहीं, इसे स्ट्रिंग विधि isidentifier () के साथ जांचा जा सकता है।

यदि यह पहचानकर्ता के रूप में मान्य है, और अमान्य होने पर गलत है तो यह सत्य लौटाता है।

print('AbcDef_123'.isidentifier())
# True

print('AbcDef-123'.isidentifier())
# False

print('変数1'.isidentifier())
# True

print('☺'.isidentifier())
# False

ऐसे शब्द जिनका उपयोग पहचानकर्ता (नाम) के रूप में नहीं किया जा सकता (आरक्षित शब्द)

कुछ शब्द (आरक्षित शब्द) हैं जिनका उपयोग पहचानकर्ता के रूप में नहीं किया जा सकता है, भले ही वे पहचानकर्ता (नाम) के रूप में मान्य स्ट्रिंग हों।

चूंकि एक आरक्षित शब्द एक पहचानकर्ता के रूप में एक मान्य स्ट्रिंग है, isidentifier() सत्य लौटाता है, लेकिन एक त्रुटि तब होती है जब इसे पहचानकर्ता के रूप में उपयोग किया जाता है।

print('None'.isidentifier())
# True

# None = 100
# SyntaxError: can't assign to keyword

आरक्षित शब्दों की सूची प्राप्त करने के लिए और यह जांचने के लिए कि क्या कोई स्ट्रिंग एक आरक्षित शब्द है, मानक पुस्तकालय के कीवर्ड मॉड्यूल का उपयोग करें।

ऐसे शब्द जिनका उपयोग पहचानकर्ता (नाम) के रूप में नहीं किया जाना चाहिए

उदाहरण के लिए, पायथन के अंतर्निहित कार्यों के नाम पहचानकर्ता के रूप में उपयोग किए जा सकते हैं, इसलिए आप उन्हें चर के रूप में नए मान निर्दिष्ट कर सकते हैं।

उदाहरण के लिए, लेन () एक अंतर्निहित फ़ंक्शन है जो किसी सूची में तत्वों की संख्या या स्ट्रिंग में वर्णों की संख्या देता है।

print(len)
# <built-in function len>

print(len('abc'))
# 3

यदि आप इस नाम लेन के लिए एक नया मान निर्दिष्ट करते हैं, तो मूल फ़ंक्शन अधिलेखित हो जाएगा और अनुपयोगी हो जाएगा। ध्यान दें कि नया मान निर्दिष्ट करते समय कोई त्रुटि या चेतावनी मुद्रित नहीं की जाएगी।

print(len('abc'))
# 3

len = 100
print(len)
# 100

# print(len('abc'))
# TypeError: 'int' object is not callable

सूची = [0, 1, 2] का उपयोग करने के लिए एक और आम गलती है, जिससे सूची() का उपयोग करना असंभव हो जाता है। सावधान रहे।

PEP8 के लिए नामकरण परंपराएं

पीईपी का मतलब पायथन एन्हांसमेंट प्रपोजल है, एक दस्तावेज जो नई सुविधाओं और पायथन के अन्य पहलुओं का वर्णन करता है।

PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment.
PEP 1 — PEP Purpose and Guidelines | Python.org

PEP8 आठवां है, और यह “पायथन कोड के लिए स्टाइल गाइड” का वर्णन करता है, जो कि पायथन के लिए स्टाइल गाइड है।

नामकरण परंपराओं का भी उल्लेख किया गया है।

अधिक विवरण के लिए उपरोक्त लिंक देखें, लेकिन उदाहरण के लिए, निम्नलिखित लेखन शैली की अनुशंसा की जाती है।

  • मापांक
    • lowercase_underscore
    • लोअरकेस + अंडरस्कोर
  • पैकेज
    • lowercase
    • सभी लोअर केस लेटर्स
  • कक्षाएं, अपवाद
    • CapitalizedWords(CamelCase)
    • किसी शब्द के पहले अक्षर को कैपिटलाइज़ करें, कोई अंडरस्कोर नहीं
  • कार्य, चर, और तरीके
    • lowercase_underscore
    • लोअरकेस + अंडरस्कोर
  • लगातार
    • ALL_CAPS
    • बड़े अक्षर + अंडरस्कोर

हालाँकि, यदि आपके संगठन की अपनी नामकरण परंपराएँ नहीं हैं, तो PEP8 का पालन करने की अनुशंसा की जाती है।

Copied title and URL