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

पायथन में शीर्ष-स्तरीय स्क्रिप्ट वातावरण (__main__)

एक मॉड्यूल ऑब्जेक्ट विभिन्न विशेषताओं द्वारा विशेषता है। विशेषता नाम डबल अंडरस्कोर __ द्वारा प्रीफ़िक्स और पोस्ट-फिक्स्ड हैं। मॉड्यूल की सबसे महत्वपूर्ण विशेषता __name__ है। जब पायथन एक शीर्ष स्तर के निष्पादन योग्य कोड के रूप में चल रहा होता है, अर्थात जब मानक इनपुट, स्क्रिप्ट, या एक इंटरैक्टिव प्रॉम्प्ट से पढ़ा जाता है, तो __name__ विशेषता '__main__ पर सेट हो जाती है। '।

>>> __name__
'__main__'

एक स्क्रिप्ट के भीतर से भी, हम पाते हैं कि __name__ विशेषता का मान '__main__' पर सेट है। निम्न स्क्रिप्ट निष्पादित करें।

'module docstring'
print ('name of module:',__name__)

आउटपुट

name of module: __main__

हालांकि, एक आयातित मॉड्यूल के लिए यह विशेषता पायथन लिपि के नाम पर सेट है। hello.py मॉड्यूल के लिए

>>> import hello
>>> hello.__name__
hello

जैसा कि पहले देखा गया है, शीर्ष-स्तरीय मॉड्यूल के लिए __name__ का मान __main__ पर सेट है। हालांकि, आयातित मॉड्यूल के लिए यह एक फ़ाइल के नाम पर सेट है। निम्नलिखित स्क्रिप्ट चलाएँ (moduletest.py)

import hello
print ('name of top level module:', __name__)
print ('name of imported module:', hello.__name__)

आउटपुट

name of top level module: __main__
name of imported module: hello

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

def welcome(name):
print ("Hi {}. Welcome to TutorialsPoint".format(name))
return
def thanks(name):
print ("Thank you {}. See you again".format(name))
name = input('enter name:')
thanks(name)

जाहिर है जब हम message.py आउटपुट चलाते हैं तो नीचे के रूप में एक धन्यवाद संदेश दिखाता है।

enter name:Ajit
Thank you Ajit. See you again

हमारे पास नीचे के रूप में एक moduletest.py स्क्रिप्ट है।

import messages
print ('name of top level module:', __name__)
print ('name of imported module:', messages.__name__)

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

c:\python37>python moduletest.py

आउटपुट

enter name:Kishan
Thank you Kishan. See you again
enter name:milind
Hi milind. Welcome to TutorialsPoint

यह दोनों लिपियों का आउटपुट है। लेकिन संदेश मॉड्यूल से फ़ंक्शन आयात करना चाहते हैं लेकिन इसमें निष्पादन योग्य कोड नहीं।

यह वह जगह है जहां तथ्य यह है कि शीर्ष-स्तरीय स्क्रिप्ट के __name__attribute का मान __main__ उपयोगी है। Messages.py स्क्रिप्ट को इस तरह बदलें कि वह इनपुट और फ़ंक्शन कॉल स्टेटमेंट को तभी निष्पादित करे जब __name__ __main__ के बराबर हो।

"docstring of messages module"
def welcome(name):
print ("Hi {}. Welcome to TutorialsPoint".format(name))
return
def thanks(name):
print ("Thank you {}. See you again".format(name))
if __name__=='__main__':
name = input('enter name')
thanks(name)

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

enter name: milind
Hi milind. Welcome to TutorialsPoint

ध्यान दें कि यह आपको message.py स्क्रिप्ट को स्वतंत्र रूप से चलाने से नहीं रोकता है।


  1. पायथन आभासी वातावरण

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

  1. पायथन में शीर्ष-स्तरीय स्क्रिप्ट वातावरण (__main__)

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

  1. पायथन गेटपास मॉड्यूल

    पायथन के मानक पुस्तकालय के गेटपास मॉड्यूल में दो कार्य परिभाषित हैं। वे तब उपयोगी होते हैं जब किसी टर्मिनल आधारित एप्लिकेशन को केवल उपयोगकर्ता क्रेडेंशियल्स को मान्य करने के बाद ही निष्पादित करने की आवश्यकता होती है। गेटपास () यह फ़ंक्शन उपयोगकर्ता को पासवर्ड दर्ज करने के लिए प्रेरित करता है। डिफ़ॉ