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

पायथन में डेटा क्लासेस (dataclasses मॉड्यूल)

dataclasses पायथन की स्टैंडर्ड लाइब्रेरी में संस्करण 3.7 से जोड़ा गया एक नया मॉड्यूल है। यह @dataclass डेकोरेटर को परिभाषित करता है जो यूजर-डिफाइंड क्लास के लिए कंस्ट्रक्टर मैजिक मेथड __init__(), स्ट्रिंग रिप्रेजेंटेशन मेथड __repr__(), == ऑपरेटर को ओवरलोड करने वाला __eq__() मेथड (और कुछ और) स्वचालित रूप से जनरेट करता है।

dataclass डेकोरेटर सिग्नेचर

dataclass(init=True, repr=True, eq=True, order=False, unsafe_hash=False, frozen=False)

सभी तर्क एक बूलियन मान लेते हैं जो इंगित करता है कि संबंधित मैजिक मेथड या मेथड्स स्वचालित रूप से जनरेट होंगे या नहीं।

'init' तर्क डिफ़ॉल्ट रूप से True है। यह क्लास के लिए __init__() मेथड स्वचालित रूप से जनरेट करेगा।

उदाहरण: Student क्लास

आइए dataclass डेकोरेटर का उपयोग करके Student क्लास को परिभाषित करें:

from dataclasses import dataclass

@dataclass
class Student(object):
    name: str
    age: int
    percent: float

स्वतः जनरेटेड __init__() मेथड इस तरह होगा:

def __init__(self, name: str, age: int, percent: float):
    self.name = name
    self.age = age
    self.percent = percent

यदि क्लास स्पष्ट रूप से __init__() मेथड को परिभाषित करती है, तो init पैरामीटर को अनदेखा किया जाता है।

repr तर्क भी डिफ़ॉल्ट रूप से True है। इसलिए __repr__() मेथड स्वचालित रूप से जनरेट होगा। __repr__() ऑब्जेक्ट का एक औपचारिक स्ट्रिंग रिप्रेजेंटेशन है। यदि क्लास पहले से __repr__() को परिभाषित करती है, तो इस पैरामीटर को अनदेखा किया जाता है।

eq तर्क डिफ़ॉल्ट रूप से True है। यह __eq__() मेथड को ऑटो-जेनरेट करेगा। यह मेथड इक्वल्स कम्पैरिजन ऑपरेटर (==) के जवाब में कॉल होता है। फिर से, यदि क्लास पहले से __eq__() को परिभाषित करती है, तो इस पैरामीटर को अनदेखा किया जाता है।

यदि 'order' पैरामीटर True है (डिफ़ॉल्ट False है), तो कम्पैरिजन के लिए मैजिक मेथड्स __lt__(), __le__(), __gt__(), और __ge__() ऑटो-जेनरेट होंगे, जो क्रमशः <, <=, >, और >= ऑपरेटर्स को लागू करते हैं। यदि order True है और eq False है, तो ValueError उठाया जाता है। यदि क्लास पहले से इनमें से किसी भी मेथड को परिभाषित करती है, तो TypeError होता है।

unsafe_hash तर्क यदि False है (डिफ़ॉल्ट), तो __hash__() मेथड eq और frozen के सेट होने के अनुसार जनरेट होता है।

frozen तर्क: यदि True है (डिफ़ॉल्ट False है), तो रीड-ओनली फ्रोज़न इंस्टेंस का अनुकरण करता है।

>>> from dataclasses import dataclass
>>> @dataclass
... class Student:
...     name: str
...     age: int
...     percent: float
...
>>> s1 = Student('Naveen', 21, 50.50)
>>> s2 = Student('Mangesh', 20, 50.00)
>>> s1 == s2
False

asdict()

यह फ़ंक्शन क्लास इंस्टेंस को डिक्शनरी ऑब्जेक्ट में बदलता है।

>>> import dataclasses
>>> dataclasses.asdict(s1)
{'name': 'Naveen', 'age': 21, 'percent': 50.5}

astuple()

यह फ़ंक्शन क्लास इंस्टेंस को टपल ऑब्जेक्ट में बदलता है।

>>> dataclasses.astuple(s2)
('Mangesh', 20, 50.0)

make_dataclass()

यह फ़ंक्शन फ़ील्ड्स तर्क के रूप में दी गई टपल्स की सूची से एक नया डेटाक्लास बनाता है।

>>> NewClass = dataclasses.make_dataclass('NewClass', [('x', int), ('y', float)])
>>> n = NewClass(10, 20)
>>> n
NewClass(x=10, y=20)
  1. - पायथन JSON: एक संपूर्ण गाइड

    JSON क्या है? JSON स्ट्रक्चर्ड डेटा स्टोर करने के लिए उपयोग किया जाने वाला एक लोकप्रिय डेटा फॉर्मेट है। जब आप पायथन में एक एप्लिकेशन बना रहे होते हैं, तो आप तय कर सकते हैं कि आप अपने ऐप में JSON का उपयोग करना चाहते हैं। उदाहरण के लिए, आप JSON फ़ाइल से डेटा पढ़ना चाह सकते हैं, या JSON फॉर्मेट में स्ट

  1. - Python में dir() विधि

    dir() फ़ंक्शन किसी भी ऑब्जेक्ट जैसे फ़ंक्शन, मॉड्यूल, स्ट्रिंग, सूची, शब्दकोश आदि के गुणों और विधियों की सूची लौटाता है। इस लेख में हम देखेंगे कि किसी प्रोग्राम में dir() का उपयोग विभिन्न तरीकों से और विभिन्न आवश्यकताओं के लिए कैसे करें। केवल dir() जब हम किसी अन्य मॉड्यूल को प्रोग्राम में आयात किए ब

  1. Python - Pandas .query() मेथड से डेटा फ़िल्टर करना Python - Pandas .query() मेथड से डेटा फ़िल्टर करना

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