Python प्रकार जाँच पूर्ण गाइड: type() र isinstance() को प्रयोग

1. परिचय

Python को प्रकार जाँच किन महत्त्वपूर्ण छ? Python एक गतिशील टाइपिङ्ग भाषा हो, जसमा चल वा वस्तुहरूको प्रकार कार्यसम्पादन समयमा निर्धारण हुन्छ। लचिलो भाषा डिजाइनले प्रकारलाई स्पष्ट रूपमा घोषणा गर्न आवश्यक पर्दैन, तर यो लचीलापनले अनपेक्षित प्रकार त्रुटि वा कार्यसम्पादनमा समस्या उत्पन्न हुन सक्छ। त्यसैले, Python कार्यक्रमको विश्वसनीयता र स्थिरता कायम राख्न प्रकार जाँच गर्नु महत्त्वपूर्ण छ। यस लेखमा, Python मा प्रमुख प्रकार जाँच विधिहरू जस्तै type(), isinstance(), र अन्य उन्नत विधिहरूको व्याख्या गरिनेछ।

2. Pythonमा डेटा प्रकारहरूको सारांश

Python मा, संख्यात्मक प्रकार, स्ट्रिङ प्रकार, सूची प्रकार, शब्दकोश प्रकार आदि विभिन्न डेटा प्रकारहरू छन्। प्रत्येक डेटा प्रकारको विशेष प्रयोग हुन्छ, र प्रकार जाँच गरेर अनपेक्षित त्रुटिहरूलाई रोक्न सकिन्छ।

मुख्य डेटा प्रकारहरू

  • संख्यात्मक प्रकार (int, float) संख्यात्मक प्रकारमा पूर्णांकलाई ह्यान्डल गर्नेint प्रकार र दशमलवलाई ह्यान्डल गर्नेfloat प्रकार छन्।
  num1 = 10
  num2 = 3.14
  print(type(num1))  # <class 'int'>
  print(type(num2))  # <class 'float'>
  • स्ट्रिङ प्रकार (str) पाठ डेटा भण्डारण गर्ने प्रकार हो, र सिंगल कोट वा डबल कोटले घेरिएर परिभाषित गरिन्छ।
  text = "Hello, World!"
  print(type(text))  # <class 'str'>
  • सूची प्रकार (list) सूची क्रमबद्ध संग्रह हो, जसले धेरै तत्वहरू भण्डारण गर्न सक्छ। सूचीलाई[] द्वारा परिभाषित गरिन्छ, र विभिन्न अपरेसनहरू सम्भव छन्।
  mylist = [1, 2, 3, 4]
  print(type(mylist))  # <class 'list'>
  • शब्दकोश प्रकार (dict) शब्दकोश प्रकारले कुञ्जी र मानको जोडीमा डेटा भण्डारण गर्छ, र{} द्वारा परिभाषित हुन्छ।
  mydict = {"one": 1, "two": 2}
  print(type(mydict))  # <class 'dict'>

3. type() प्रयोग गरेर प्रकार जाँच

type() फङ्क्शनले निर्दिष्ट वस्तुको प्रकार प्राप्त गर्नको लागि आधारभूत बिल्ट‑इन फङ्क्शन हो। यो सरल रूपमा प्रकार फिर्ता गर्छ, जसले वस्तुको प्रकार जाँचमा अत्यन्त उपयोगी हुन्छ।

type() फङ्क्शनको आधारभूत प्रयोग

अगामी उदाहरणमा, type() फङ्क्शन प्रयोग गरेर चलको प्रकार जाँच गरिन्छ।
myvar = 1234
print(type(myvar))  # <class 'int'>
अन्य प्रकारहरूका लागि पनि समान तरिकाले जाँच गर्न सकिन्छ।
mystr = "Hello"
print(type(mystr))  # <class 'str'>

type()को फाइदा र ध्यान दिनुपर्ने बुँदा

type()ले प्रकार जाँचलाई सरल बनाउँछ, तर सबक्लासको निर्धारणमा सावधानी आवश्यक छ। type()ले सबक्लासलाई विचार गर्दैन, केवल निर्दिष्ट प्रकारसँगको मिलान मात्र जाँच गर्छ।
class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(type(dog) == Animal)  # False
यस अवस्थामा, Dog ले Animal लाई उत्तराधिकार गरेको छ, तर type() मा False फिर्ता हुन्छ। यसरी सबक्लासलाई पनि विचार गर्नुपर्दा, अर्को परिचय गराइने isinstance() सिफारिस गरिन्छ।

4. isinstance() कार्यलाई प्रयोग गरेर प्रकार जाँच

isinstance() कार्य वस्तु विशेष प्रकारको हो वा त्यसको सबक्लास हो कि छैन जाँच गर्न प्रयोग गरिन्छ। उत्तराधिकार सम्बन्ध समेटेर लचिलो प्रकार जाँच सम्भव छ।

isinstance()को आधारभूत प्रयोग

अगामी उदाहरणमा, isinstance() प्रयोग गरेर चलको प्रकार जाँच गरिन्छ।
myvar = 1234
print(isinstance(myvar, int))  # True
यस उदाहरणमा, myvar int प्रकारको भएकोले, True फिर्ता हुन्छ।

एकै साथ धेरै प्रकारको जाँच

isinstance() टुपलमा धेरै प्रकारहरू पास गरेर, एकै साथ धेरै प्रकार जाँच गर्न सकिन्छ।
value = 3.14
print(isinstance(value, (int, float)))  # True
एकै साथ धेरै प्रकार जाँच गर्दा उपयोगी हुन्छ।

सबक्लासको जाँच

isinstance() सबक्लासलाई पनि समर्थन गर्दछ, त्यसैले वस्तु उत्तराधिकार सम्बन्धमा रहेको वर्ग हो कि होइन जाँच गर्न सकिन्छ।
class Animal:
    pass

class Dog(Animal):
    pass

dog = Dog()
print(isinstance(dog, Animal))  # True
यस उदाहरणमा, Dog वर्गको उदाहरण Animal वर्गलाई उत्तराधिकार गरेको कारण, True फिर्ता हुन्छ।
年収訴求

5. अन्य प्रकार जाँच गर्ने तरिकाहरू

Python मा, type() वा isinstance() बाहेक पनि प्रकार जाँच गर्ने तरिकाहरू छन्। यी विधिहरूलाई विशेष प्रयोजन अनुसार प्रयोग गर्न सकिन्छ।

issubclass() फलन

issubclass() प्रयोग गरिन्छ कि कुनै वर्ग अर्को वर्गको सबक्लास हो कि होइन जाँच गर्न।
class Animal:
    pass

class Dog(Animal):
    pass

print(issubclass(Dog, Animal))  # True

collections.abc मोड्युल

collections.abc मोड्युल सूची वा शब्दकोश जस्ता संग्रह प्रकारहरूको प्रकार जाँच गर्न उपयोगी छ। तलको उदाहरणले सूची Sequence हो कि होइन जाँच गर्दछ।
import collections.abc

mylist = [1, 2, 3]
print(isinstance(mylist, collections.abc.Sequence))  # True

typing मोड्युल द्वारा प्रकार संकेत

typing मोड्युल Python कोडमा स्थिर प्रकार जाँच लागू गर्नको लागि हो। यसले कोडको पढ्न सजिलो बनाउँछ र डिबगिङलाई सहज बनाउँछ।
from typing import List

def greet(names: List[str]) -> None:
    for name in names:
        print(f"Hello, {name}!")

NoneType को प्रकार जाँच

NoneType भनेको None नामक विशेष वस्तुको प्रकार हो। प्रकार जाँच गरेर अनपेक्षित त्रुटिहरूलाई रोक्न सकिन्छ।
myvar = None
print(type(myvar))  # <class 'NoneType'>
NoneType को निर्धारणले, कार्यको फिर्ती मान None हो कि होइन जाँच गर्दा आदि उपयोगी हुन्छ।
侍エンジニア塾