पायथन में कुछ मामलों में हम सिंगल अंडरस्कोर (_) और कुछ मामलों में डबल अंडरस्कोर (__) का उपयोग करते हैं।
पायथन में निम्नलिखित मामले हैं, जहां हम अंडरस्कोर का उपयोग करते हैं।
- यदि हम इंटरप्रेटर में अंतिम अभिव्यक्ति का मान स्टोर करना चाहते हैं।
- यदि हम कुछ मानों को अनदेखा करना चाहते हैं।
- वेरिएबल या फ़ंक्शन की घोषणा के लिए।
- संख्या के अंकों को अलग करने के लिए।
- यह 'इंटरनेशनलाइज़ेशन (i18n)' या 'लोकलाइज़ेशन (l10n)' फ़ंक्शन के रूप में भी उपयोग किया जाता है।
अब हर मामले पर कुछ उदाहरण।
इंटरप्रेटर में उपयोग
पायथन इंटरप्रेटर अंतिम अभिव्यक्ति मान को '_' में स्टोर करता है।
>>> 20 20 >>> _ 20 >>> _ + 3 23
मानों को अनदेखा करना
अंडरस्कोर का उपयोग मानों को अनदेखा करने के लिए भी किया जाता है।
x, _, y = (1, 2, 3)
यहाँ x = 1, y = 3 और मान 2 को अनदेखा करें।
वेरिएबल और फ़ंक्शन घोषित करने के लिए उपयोग
पायथन निजी का समर्थन नहीं करता, इसलिए हम किसी चीज़ को निजी बनाने के लिए मजबूर नहीं कर सकते लेकिन हम इसे सीधे अन्य मॉड्यूल से कॉल कर सकते हैं।
single_trailing_underscore_
इस कन्वेंशन का उपयोग करके पायथन कीवर्ड्स और बिल्ट-इन्स के टकराव से आसानी से बचा जा सकता है।
__double_leading_underscore
यह मैंगलिंग है, इसका उपयोग नामों के बीच एट्रिब्यूट नाम के टकराव से बचने के लिए किया जाता है।
यदि आप किसी क्लास में "__display" मेथड नाम लिखते हैं, तो नाम "_ClassName__display" फॉर्म में मैंगल हो जाएगा।
__double_leading_and_trailing_underscore__
कुछ मामलों में हम इस कन्वेंशन का उपयोग करते हैं। जैसे __init__।
संख्या के अंकों को अलग करने के लिए
dec_base = 1_000_000 print(dec_base) # 1000000
इंटरनेशनलाइज़ेशन (i18n)/लोकलाइज़ेशन (l10n) फ़ंक्शन के रूप में
यह केवल एक कन्वेंशन है कोई सिंटैक्टिक फ़ंक्शन नहीं, यहाँ अंडरस्कोर सिर्फ C कन्वेंशन से i18n/l10n को अंडरस्कोर वेरिएबल से बांधता है।