"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन ट्रिक: फ़ील्ड के साथ डेटाक्लास का उपयोग करना (default_factory=...)

पायथन ट्रिक: फ़ील्ड के साथ डेटाक्लास का उपयोग करना (default_factory=...)

2024-11-02 को प्रकाशित
ब्राउज़ करें:759

Python Trick: Using dataclasses with field(default_factory=...)

पायथन का डेटाक्लास मॉड्यूल डेटा संग्रहीत करने के लिए उपयोग की जाने वाली कक्षाओं के निर्माण को सरल बनाता है।

हालांकि अधिकांश लोग बुनियादी उपयोग के बारे में जानते हैं, एक कम-ज्ञात फीचर फ़ील्ड (default_factory=...) है जो परिवर्तनशील प्रकारों में डिफ़ॉल्ट मानों को संभालने के लिए अविश्वसनीय रूप से उपयोगी हो सकता है।


यह काम किस प्रकार करता है

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

जिस तरह से उदाहरणों में डिफ़ॉल्ट तर्क साझा किए जाते हैं, उसके कारण सीधे परिवर्तनीय डिफ़ॉल्ट का उपयोग करने से अप्रत्याशित व्यवहार हो सकता है।

Default_factory फ़ंक्शन परिवर्तनशील डिफ़ॉल्ट को संभालने का एक साफ़ तरीका प्रदान करता है।

यहां एक सरल उदाहरण दिया गया है:

from dataclasses import dataclass, field
from typing import List


@dataclass
class Student:
    name: str
    grades: List[int] = field(default_factory=list)  # Use default_factory for mutable default


# Create new Student instances
student1 = Student(name="Alice")
student2 = Student(name="Bob", grades=[90, 85])

# Modify student1's grades
student1.grades.append(95)

print(student1)  # Output: Student(name='Alice', grades=[95])
print(student2)  # Output: Student(name='Bob', grades=[90, 85])


# Output:
# Student(name='Alice', grades=[95])
# Student(name='Bob', grades=[90, 85])

इस उदाहरण में, ग्रेड को प्रत्येक नए छात्र उदाहरण के लिए एक खाली सूची के साथ आरंभ किया गया है।
फ़ील्ड (डिफ़ॉल्ट_फैक्टरी = सूची) का उपयोग यह सुनिश्चित करता है कि साझा परिवर्तनीय डिफ़ॉल्ट के नुकसान से बचने के लिए प्रत्येक उदाहरण को अपनी अलग सूची मिलती है।


यह अच्छा क्यों है?

परिवर्तनीय डिफ़ॉल्ट तर्कों के साथ सामान्य समस्याओं से बचने के लिए default_factory सुविधा अमूल्य है।

यह सुनिश्चित करने में मदद करता है कि डेटाक्लास के प्रत्येक उदाहरण का अपना डिफ़ॉल्ट मान है, जिससे आपका कोड अधिक पूर्वानुमानित हो जाता है और साझा स्थिति से संबंधित सूक्ष्म बग से बचा जा सकता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/devasservice/python-trick-using-dataclasses-with-fielddefaultfactory-4159?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3