python क्या पायथन में एक टिप्पणी '#-*-कोडिंग: utf-8-*-' भी है?




encoding comments (2)

जैसा कि हम पायथन में टिप्पणी डालने के लिए # उपयोग करते हैं, तब पायथन कैसे लेता है:

# -*- coding: utf-8 -*-

अलग ढंग से?


पायथन संदर्भ नियमावली में एन्कोडिंग घोषणाएँ देखें:

यदि पायथन स्क्रिप्ट की पहली या दूसरी पंक्ति में एक टिप्पणी नियमित अभिव्यक्ति coding[=:]\s*([-\w.]+) से मेल खाती है coding[=:]\s*([-\w.]+) , तो इस टिप्पणी को एन्कोडिंग घोषणा के रूप में संसाधित किया जाता है; इस अभिव्यक्ति का पहला समूह स्रोत कोड फ़ाइल के एन्कोडिंग को नाम देता है।

(जोर मेरा)

तो हाँ, यह एक टिप्पणी है, एक विशेष। यह विशेष है कि पार्सर कोशिश करेगा और उस पर कार्रवाई करेगा और इसे अनदेखा नहीं करेगा क्योंकि यह पहली या दूसरी पंक्ति में टिप्पणियों के लिए नहीं है। उदाहरण के लिए, नमूना फ़ाइल डिक्लेरेशन में एक अपंजीकृत एन्कोडिंग घोषणा।

# # -*- coding: unknown-encoding -*-
print("foo")

यदि आप इसे चलाते हैं और चलाते हैं, तो पायथन इसकी कोशिश करेगा और इसे संसाधित करेगा, असफल होगा और शिकायत करेगा:

python decl.py 
  File "decl.py", line 1
SyntaxError: encoding problem: unknown-encoding

हां, यह भी एक टिप्पणी है। और उस टिप्पणी की सामग्री विशेष अर्थ लेती है अगर फ़ाइल के शीर्ष पर स्थित है, पहली दो पंक्तियों में।

एनकोडिंग घोषणाओं के प्रलेखन से :

यदि पायथन स्क्रिप्ट की पहली या दूसरी पंक्ति में एक टिप्पणी नियमित अभिव्यक्ति coding[=:]\s*([-\w.]+) से मेल खाती है coding[=:]\s*([-\w.]+) , तो इस टिप्पणी को एन्कोडिंग घोषणा के रूप में संसाधित किया जाता है; इस अभिव्यक्ति का पहला समूह स्रोत कोड फ़ाइल के एन्कोडिंग को नाम देता है। एन्कोडिंग घोषणा अपनी स्वयं की एक पंक्ति में दिखाई देनी चाहिए। यदि यह दूसरी पंक्ति है, तो पहली पंक्ति भी केवल टिप्पणी-पंक्ति होनी चाहिए।

ध्यान दें कि फ़ाइल को पढ़ने के लिए कोडेक का उपयोग क्या करना चाहिए, इससे कोई फर्क नहीं पड़ता है, जहां तक ​​टिप्पणियों का संबंध है। पायथन आमतौर पर # टोकन के बाद सब कुछ अनदेखा कर देगा, और सभी स्वीकार किए गए स्रोत कोड कोड # में एन्कोडिंग घोषणा और लाइन सेपरेटर अक्षर ठीक उसी तरह एन्कोड किए गए हैं, जैसे वे ASCII के सभी सुपरसेट हैं। इसलिए सभी पार्सर को एक पंक्ति पढ़ना है, टिप्पणी में विशेष पाठ के लिए स्कैन करना है, एक और पढ़ना है यदि आवश्यक हो, तो टिप्पणी के लिए स्कैन करें, फिर दिए गए कोडेक के अनुसार डेटा पढ़ने के लिए पार्सर को कॉन्फ़िगर करें।

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





comments