संक्षिप्त उत्तर: पायथन में वेरिएबल घोषित करने की कोई आवश्यकता नहीं है।
विस्तृत विवरण
स्टैटिकली टाइप्ड भाषाएं (C, C++, Java, C#)
उपयोग किए जाने वाले वेरिएबल के नाम और प्रकार की घोषणा प्रोग्राम में उपयोग करने से पहले करने की आवश्यकता होती है। संबंधित भाषा कंपाइलर सुनिश्चित करता है कि वेरिएबल में उपयुक्त डेटा संग्रहीत है। उदाहरण के लिए C में, यदि प्रोग्रामर एक वेरिएबल में पूर्णांक स्थिरांक संग्रहीत करना चाहता है, तो इसे घोषित किया जाना चाहिए:
int x;
घोषणा के बाद, असाइनमेंट या उपयोगकर्ता इनपुट प्रदान किया जा सकता है। यदि असाइन किया गया मान पूर्णांक के अलावा है, तो कंपाइलर टाइप मिसमैच त्रुटि के बारे में शिकायत करेगा।
x = 10; // वैध असाइनमेंट
x = "Hello"; // टाइप मिसमैच त्रुटि उत्पन्न करता है
पायथन: डायनामिकली टाइप्ड
पायथन एक डायनामिकली टाइप्ड भाषा है। वास्तव में, पायथन में एक निश्चित प्रकार (संख्या, स्ट्रिंग, बूलियन, आदि) का डेटा ऑब्जेक्ट एक विशेष मेमोरी स्थान में संग्रहीत होता है और वेरिएबल केवल उससे बंधा एक नाम है। दूसरे शब्दों में, वेरिएबल का प्रकार रनटाइम के दौरान उसको असाइन किए गए मान पर निर्भर करता है। पायथन के मानक लाइब्रेरी में वेरिएबल के डेटा प्रकार को जानने के लिए `type()` फ़ंक्शन है। निम्न उदाहरण दिखाता है कि पायथन वेरिएबल का प्रकार कैसे डायनामिकली बदलता है।
>>> a = "Hello" # वेरिएबल a स्ट्रिंग ऑब्जेक्ट संग्रहीत करता है
>>> type(a)
>>> a = 10 # वेरिएबल a अब पूर्णांक संख्या ऑब्जेक्ट संग्रहीत करता है
>>> type(a)
>>> a = 3.14 # अब फ्लोट
>>> type(a)
>>> a = [1, 2, 3] # अब सूची
>>> type(a)
मुख्य अवधारणाएं
| अवधारणा | विवरण |
|---|---|
| कोई घोषणा नहीं | वेरिएबल पहली असाइनमेंट पर बनते हैं |
| डायनामिक टाइपिंग | प्रकार मान से जुड़ा होता है, वेरिएबल से नहीं |
| नाम बाइंडिंग | वेरिएबल = ऑब्जेक्ट का संदर्भ |
| पुनर्असाइनमेंट | किसी भी समय किसी भी प्रकार के लिए अनुमत |
टाइप हिंट्स (पायथन 3.5+) - वैकल्पिक स्थैतिक टाइपिंग
# टाइप हिंट्स (रनटाइम पर लागू नहीं)
name: str = "John"
age: int = 30
height: float = 5.9
is_student: bool = True
# टाइप चेकिंग टूल्स के लिए: mypy, pyright
# mypy script.py
असाइनमेंट विविधताएं
# एकाधिक असाइनमेंट
a = b = c = 0
# अनपैकिंग
x, y, z = 1, 2, 3
a, *rest = [1, 2, 3, 4, 5] # a=1, rest=[2,3,4,5]
# स्वैप (कोई अस्थायी वेरिएबल नहीं)
x, y = y, x
# वॉलरस ऑपरेटर (पायथन 3.8+)
if (n := len(data)) > 10:
print(f"Too long: {n}")
निष्कर्ष
पायथन में वेरिएबल केवल ऑब्जेक्ट के लिए लेबल हैं। कोई घोषणा नहीं, कोई स्थिर प्रकार नहीं - बस असाइन करें और उपयोग करें। टाइप सुरक्षा के लिए, वैकल्पिक स्थैतिक विश्लेषण के लिए टाइप हिंट्स + `mypy` का उपयोग करें।