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

पायथन ग्लोबल और लोकल वेरिएबल्स: पूरी गाइड

एक वेरिएबल प्रोग्रामिंग में एक महत्वपूर्ण और सर्वव्यापी अवधारणा है। वेरिएबल्स डेटा स्टोर करने के लिए कंटेनर हैं। वेरिएबल्स कई प्रकार के डेटा स्टोर कर सकते हैं, जिसमें यूजरनेम, ईमेल एड्रेस, और यूजर के ऑनलाइन गेम इन्वेंट्री में आइटम्स शामिल हैं।

पायथन में प्रोग्रामिंग करते समय, आप दो प्रकार के वेरिएबल्स का सामना करेंगे: ग्लोबल और लोकल। इस गाइड में, हम इन दो प्रकार के वेरिएबल्स के बीच अंतर, वे कैसे काम करते हैं, और आप उन्हें अपने कोड में कैसे उपयोग कर सकते हैं, इस पर चर्चा करते हैं।

पायथन वेरिएबल्स

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

मान लीजिए हम एक गेम बना रहे हैं और यूजर का नाम स्टोर करना चाहते हैं। अपने प्रोग्राम में पूरे नाम को टाइप करने के बजाय, हम इसे स्टोर करने के लिए एक वेरिएबल का उपयोग कर सकते हैं।

गेम के लिए यूजर का नाम स्टोर करने वाला एक वेरिएबल यहां दिया गया है:

name = "Carlton Hernandez"

हमने name नामक एक वेरिएबल घोषित किया और इसे मान “Carlton Hernandez” असाइन किया।

अब जब हमने उस वेरिएबल को घोषित कर दिया है, तो हम इसे अपने कोड में मैनिपुलेट कर सकते हैं। उदाहरण के लिए, यदि हम अपने यूजर का नाम बदलना चाहते हैं, तो हम इसे इस कोड का उपयोग करके कर सकते हैं:

name = "Carlton Hernandez" name = "Carlton Lewis Hernandez"

हमारे कोड की पहली लाइन पर, हमने name वेरिएबल को मान “Carlton Hernandez” असाइन किया। फिर, हमने name वेरिएबल को मान “Carlton Lewis Hernandez” असाइन किया। जब आप किसी वेरिएबल को नया मान असाइन करते हैं, तो प्रोग्राम सबसे हाल के मान को ओवरराइट करता है, इसे नए से बदल देता है।

पायथन ग्लोबल वेरिएबल्स

पायथन में, दो मुख्य प्रकार के वेरिएबल्स हैं: लोकल और ग्लोबल।

ग्लोबल वेरिएबल्स फंक्शन के बाहर घोषित वेरिएबल्स हैं। ग्लोबल वेरिएबल्स का ग्लोबल स्कोप होता है। इसका मतलब है कि उन्हें पूरे प्रोग्राम में एक्सेस किया जा सकता है, जिसमें फंक्शन्स के अंदर भी शामिल है। इस अवधारणा के निम्नलिखित दृश्य प्रतिनिधित्व पर विचार करें।

पायथन में ग्लोबल और लोकल वेरिएबल्स

चित्र: ग्लोबल वेरिएबल पूरे प्रोग्राम में एक्सेसिबल होता है।

पायथन में ग्लोबल वेरिएबल का एक उदाहरण यहां दिया गया है:

name = "Carlton Hernandez"

एक बार जब हम एक ग्लोबल वेरिएबल घोषित कर देते हैं, तो हम इसे अपने पूरे कोड में उपयोग कर सकते हैं। उदाहरण के लिए, हम एक फंक्शन बना सकते हैं जो हमारे ग्लोबल वेरिएबल name द्वारा धारित मान को प्रिंट करता है, इस कोड का उपयोग करके:

def printName(): print(name) printName()

हमारा कोड रिटर्न करता है:

"Carlton Hernandez"

यहां, हमने printName() नामक एक फंक्शन इनिशियलाइज़ किया। यह फंक्शन, जब इनवोक किया जाता है, name वेरिएबल के मान को कंसोल पर प्रिंट करता है। यही ऊपर हुआ जब हमने फंक्शन को इनवोक किया।

पायथन लोकल वेरिएबल्स

दूसरी ओर, लोकल वेरिएबल्स फंक्शन के अंदर घोषित वेरिएबल्स हैं। इन वेरिएबल्स को local scope के रूप में जाना जाता है। इसका मतलब है कि उन्हें केवल उस फंक्शन के भीतर एक्सेस किया जा सकता है जिसमें वे घोषित हैं। फिर से इस दृश्य प्रतिनिधित्व पर विचार करें जिसे हमने पहले प्रदर्शित किया था जो पायथन में वेरिएबल्स की अवधारणा को दर्शाता है:

ग्लोबल और लोकल वेरिएबल्स

चित्र: लोकल वेरिएबल केवल एक विशेष फंक्शन के भीतर एक्सेसिबल होता है।

लोकल वेरिएबल का उपयोग करने वाले प्रोग्राम का एक उदाहरण निम्नलिखित है:

def printName(): name = "Georgia Anderson" print(name) printName()

हमारा कोड रिटर्न करता है:

"Georgia Anderson"

हमारे कोड में, हमने printName() नामक एक फंक्शन घोषित किया। उस फंक्शन के भीतर, हमने name नामक एक वेरिएबल परिभाषित किया। क्योंकि हमने इस वेरिएबल को एक फंक्शन के भीतर घोषित किया, यह एक लोकल वेरिएबल है।

हमारे कोड के अंत में, हमने printName() का उपयोग करके अपने फंक्शन को कॉल किया। प्रतिक्रिया में, प्रोग्राम ने printName() फंक्शन निष्पादित किया।

इस उदाहरण में name वेरिएबल printName() फंक्शन के लिए लोकल है। इसलिए, हम अपने फंक्शन के बाहर उस वेरिएबल को एक्सेस नहीं कर सकते। यहां वह होता है जब हम इस लोकल name वेरिएबल को उस फंक्शन के बाहर प्रिंट करने का प्रयास करते हैं जिसमें यह घोषित है:

def printName(): name = "Georgia Anderson" print(name) printName() print(name)

हमारा कोड रिटर्न करता है:

NameError: name 'name' is not defined

हम उस फंक्शन के बाहर लोकल वेरिएबल को एक्सेस नहीं कर सकते जिसमें हमने वह वेरिएबल असाइन किया था। जब हम अपने मेन प्रोग्राम में लोकल वेरिएबल को एक्सेस करने का प्रयास करते हैं, तो प्रोग्राम एरर रिटर्न करेगा।

ग्लोबल और लोकल वेरिएबल्स का उपयोग करना

एक प्रोग्राम के लिए लोकल और ग्लोबल वेरिएबल दोनों के लिए एक ही वेरिएबल नाम का उपयोग करना संभव है। ऐसे परिदृश्य में, लोकल वेरिएबल लोकल स्कोप में पढ़ा जाएगा, और ग्लोबल वेरिएबल ग्लोबल स्कोप में पढ़ा जाएगा।

यहां एक प्रोग्राम का उदाहरण है जिसमें एक ही नाम के लोकल और ग्लोबल वेरिएबल्स हैं:

score = 5 def calculateScore(): score = 10 print("Final Score:", score) calculateScore() print("Initial Score:", score)

हमारा कोड रिटर्न करता है:

Final Score: 10 Initial Score: 5

पहले, हमने अपने कोड में ग्लोबल वेरिएबल score असाइन किया। फिर, हमारे calculateScore() फंक्शन में, हमने उसी नाम से एक लोकल वेरिएबल बनाया।

calculateScore() फंक्शन में हमारे लोकल score वेरिएबल का मान 10 है। इसलिए, जब हम अपने calculateScore() फंक्शन को कॉल करते हैं, तो संदेश Final Score: 10 कंसोल पर प्रिंट होता है।

हालांकि, हमारे calculateScore() फंक्शन के बाहर, score वेरिएबल का मान 5 है। ऐसा इसलिए है क्योंकि हमने ग्लोबल स्कोप में score वेरिएबल का मान 5 सेट किया था। इसलिए, जब हम Initial Score: प्रिंट करते हैं, उसके बाद score वेरिएबल का मान, प्रोग्राम मान 5 प्रदर्शित करता है।

फंक्शन के भीतर ग्लोबल वेरिएबल्स असाइन करना

ऊपर के सेक्शन्स में, हमने सीखा कि ग्लोबल वेरिएबल्स फंक्शन के बाहर परिभाषित होते हैं (यानी, ग्लोबली), और लोकल वेरिएबल्स फंक्शन के अंदर परिभाषित होते हैं (यानी, लोकली)। हालांकि, यदि आप फंक्शन के भीतर (यानी, लोकली) वेरिएबल को परिभाषित करने के लिए global कीवर्ड का उपयोग करते हैं, और फिर उस फंक्शन को प्रोग्राम में (ग्लोबली) चलाते हैं, तो वह वेरिएबल ग्लोबल वेरिएबल बन जाएगा।

निम्नलिखित उदाहरण पर विचार करें:

def setName(): global name name = "Bianca Peterson" setName() print(name)

हमारा कोड रिटर्न करता है:

"Bianca Peterson"

हमारे कोड में, हमने name वेरिएबल का मान लोकली, setName() फंक्शन के अंदर असाइन किया। हालांकि, क्योंकि हमने इस वेरिएबल को परिभाषित करने से पहले global कीवर्ड का उपयोग किया, हम name वेरिएबल को ग्लोबल स्कोप देने की तैयारी करते हैं। हालांकि, name वेरिएबल केवल बाद में ग्लोबल वेरिएबल बनेगा जब हम इस फंक्शन को प्रोग्राम में चलाएंगे।

प्रोग्राम द्वारा setName() फंक्शन चलाने के बाद, जब भी हम अपने प्रोग्राम में name वेरिएबल का उपयोग करते हैं, जैसा हमने print() फंक्शन चलाते समय किया, प्रोग्राम उस मान का उपयोग करेगा जिसे हमने लोकल फंक्शन में घोषित किया था। ऐसा इसलिए है क्योंकि name वेरिएबल अब एक ग्लोबल वेरिएबल है।

याद रखें कि पहले हमने कहा था कि आप फंक्शन के अंदर ग्लोबल वेरिएबल को सीधे नहीं बदल सकते? यह सच है। हालांकि, आप ग्लोबल कीवर्ड का उपयोग करके फंक्शन के अंदर इनडायरेक्टली ग्लोबल वेरिएबल को बदल सकते हैं।

यहां एक प्रोग्राम का उदाहरण है जो फंक्शन में ग्लोबल कीवर्ड का उपयोग करके ग्लोबल वेरिएबल के मान को बदलता है:

name = "Bianca Peterson" def setName(): global name name = "Bianca Lucinda Peterson" setName() print(name)

हमारा कोड रिटर्न करता है:

"Bianca Lucinda Peterson"

आइए इस कोड को तोड़ दें। पहले, हमने name नामक एक वेरिएबल घोषित किया और इसे मान “Bianca Peterson” असाइन किया। यह एक ग्लोबल वेरिएबल है। फिर, हमने setName() नामक एक फंक्शन घोषित किया। जब कॉल किया जाता है, तो setName() फंक्शन name वेरिएबल के मान को बदलता है।

हमने फिर setName() फंक्शन को कॉल किया, जिसने name के मान को “Bianca Lucinda Peterson” में बदल दिया। अंत में, हमने name के मान को कंसोल पर प्रिंट किया। ग्लोबल वेरिएबल name का मान अब “Bianca Lucinda Peterson” है।

आम तौर पर, global कीवर्ड का उपयोग संयम से किया जाना चाहिए। global कीवर्ड का बहुत अधिक उपयोग प्रोग्राम में वेरिएबल्स के स्कोप को समझना मुश्किल बना सकता है।

निष्कर्ष

ग्लोबल वेरिएबल्स फंक्शन के बाहर घोषित वेरिएबल्स हैं। लोकल वेरिएबल्स फंक्शन के अंदर घोषित वेरिएबल्स हैं।

जबकि ग्लोबल वेरिएबल्स को फंक्शन में सीधे नहीं बदला जा सकता, आप ग्लोबल कीवर्ड का उपयोग करके एक फंक्शन बना सकते हैं जो ग्लोबल वेरिएबल के मान को बदलेगा। इस मामले में, ग्लोबल वेरिएबल का मान वास्तव में तब तक नहीं बदलेगा जब तक आप उस फंक्शन को नहीं चलाते।

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

  1. पायथन में नेमस्पेस और स्कोप पायथन में नेमस्पेस और स्कोप

    पायथन में हम वेरिएबल्स, फ़ंक्शन्स, लाइब्रेरीज़ और मॉड्यूल्स आदि से निपटते हैं। इस बात की संभावना है कि जिस वेरिएबल नाम का आप उपयोग करने जा रहे हैं वह पहले से ही किसी अन्य वेरिएबल के नाम के रूप में या किसी अन्य फ़ंक्शन या मेथड के नाम के रूप में मौजूद है। ऐसे परिदृश्य में, हमें यह सीखने की आवश्यकता है

  1. - पायथन फंक्शन में ग्लोबल वेरिएबल का उपयोग कैसे करें?

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

  1. Bash वेरिएबल्स में मास्टर करें: ग्लोबल और लोकल उपयोग के 6 व्यावहारिक उदाहरण Bash वेरिएबल्स में मास्टर करें: ग्लोबल और लोकल उपयोग के 6 व्यावहारिक उदाहरण

    यह लेख हमारी चल रही bash ट्यूटोरियल सीरीज़ का हिस्सा है। किसी भी अन्य प्रोग्रामिंग भाषा की तरह, Bash भी वेरिएबल्स प्रदान करता है। Bash वेरिएबल्स प्रोग्राम के जीवनकाल के दौरान आवश्यक जानकारी के लिए अस्थायी भंडारण प्रदान करते हैं। सिंटैक्स: VARNAME=VALUE नोट: वेरिएबल असाइनमेंट में = चिन्ह के आसपास कोई