Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में `if __name__ == "__main__":` का क्या अर्थ है?

जब पायथन इंटरप्रेटर एक सोर्स फ़ाइल पढ़ता है, तो यह उसमें पाए गए सभी कोड को निष्पादित करता है।

स्पेशल वेरिएबल `__name__`

कोड निष्पादित करने से पहले, इंटरप्रेटर कुछ विशेष वेरिएबल परिभाषित करता है। यदि पायथन इंटरप्रेटर उस मॉड्यूल (सोर्स फ़ाइल) को मुख्य प्रोग्राम के रूप में चला रहा है, तो यह विशेष `__name__` वेरिएबल का मान `"__main__"` सेट करता है। यदि यह फ़ाइल किसी अन्य मॉड्यूल से इम्पोर्ट की जा रही है, तो `__name__` को उस मॉड्यूल के नाम पर सेट किया जाता है।

इसका उपयोग क्यों करें?

कभी-कभी आप एक मॉड्यूल (.py फ़ाइल) लिखते हैं जिसे सीधे निष्पादित किया जा सकता है। वैकल्पिक रूप से, इसे किसी अन्य मॉड्यूल में इम्पोर्ट करके उपयोग भी किया जा सकता है। इस मुख्य जांच (main check) को करके, आप उस कोड को केवल तभी निष्पादित कर सकते हैं जब आप मॉड्यूल को प्रोग्राम के रूप में चलाना चाहते हैं, न कि तब जब कोई केवल आपके मॉड्यूल को इम्पोर्ट करके आपके फ़ंक्शन कॉल करना चाहता हो।

उदाहरण

one.py

def func():
    print("func() in one.py")

print("Root of one.py")

if __name__ == "__main__":
    print("one.py is being run directly")
else:
    print("one.py is being imported")

two.py

import one

print("Root of two.py")
one.func()

if __name__ == "__main__":
    print("two.py is being run directly")
else:
    print("two.py is being imported")

आउटपुट

`python one.py` चलाने पर:

Root of one.py
one.py is being run directly

`python two.py` चलाने पर:

Root of one.py
one.py is being imported
Root of two.py
func() in one.py
two.py is being run directly

सारांश

  • `__name__ == "__main__"` जांचता है कि स्क्रिप्ट सीधे चलाई गई है या इम्पोर्ट की गई
  • यह टेस्ट कोड या डेमो कोड को इम्पोर्ट के दौरान चलने से रोकता है
  • पायथन में मॉड्यूल डिजाइन का एक सर्वोत्तम अभ्यास है
  1. - पायथन में print >> क्या करता है?

    एक सिंटैक्स है जो मानक print स्टेटमेंट को विस्तारित करता है ताकि इसे डिफ़ॉल्ट sys.stdout के बजाय किसी भी फ़ाइल-जैसे ऑब्जेक्ट पर प्रिंट करने के लिए उपयोग किया जा सके। इसलिए इसका उपयोग सीधे फ़ाइलों पर प्रिंट करने के लिए किया जा सकता है। उदाहरण उदाहरण के लिए, आप my_file नामक फ़ाइल खोलते हैं, फिर आप इ

  1. - Python में Strings पर % Operator क्या करता है?

    % String Formatting Operator % एक String Formatting Operator या Interpolation Operator है। दिए गए format % values (जहां Format एक String है), Format में % Conversion Specifications को Values के Zero या अधिक Elements से Replace किया जाता है। Effect C Language में sprintf() का उपयोग करने के समान है।

  1. - पायथन में स्ट्रिंग लिटरल के सामने 'b' कैरेक्टर क्या करता है?

    पायथन 2 में b या B प्रीफिक्स को नजरअंदाज किया जाता है। पायथन 3 में, बाइट्स लिटरल्स हमेशा b या B से प्रीफिक्स्ड होते हैं; वे str टाइप के बजाय bytes टाइप का एक इंस्टेंस उत्पन्न करते हैं। उनमें केवल ASCII कैरेक्टर्स हो सकते हैं; 128 या अधिक न्यूमेरिक मान वाले बाइट्स को एस्केप के साथ व्यक्त किया जाना चा