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

पायथन वस्तु दृढ़ता (अलमारियां)

जब रिलेशनल डेटाबेस समाधान का उपयोग करने की आवश्यकता नहीं होती है, तो पाइथन के मानक पुस्तकालय में शेल्व मॉड्यूल लगातार डेटा भंडारण के लिए एक सरल लेकिन प्रभावी उपकरण है। इस मॉड्यूल में परिभाषित शेल्फ ऑब्जेक्ट डिक्शनरी जैसी वस्तु है जो डिस्क फ़ाइल में लगातार संग्रहीत होती है। यह UNIX जैसे सिस्टम पर dbm डेटाबेस के समान एफाइल बनाता है। इस विशेष डिक्शनरी ऑब्जेक्ट में केवल स्ट्रिंग डेटा प्रकार का उपयोग कुंजी के रूप में किया जा सकता है, जबकि कोई भी पिक करने योग्य वस्तु मूल्य के रूप में काम कर सकती है।

शेल्व मॉड्यूल तीन वर्गों को निम्नानुसार परिभाषित करता है -

<टेबल> <थहेड> क्रमांक मॉड्यूल और विवरण 1 शेल्फ
यह शेल्फ कार्यान्वयन के लिए आधार वर्ग है। इसे ताना जैसी वस्तु के साथ आरंभ किया जाता है।
2 बीएसडीडीबीशेल्फ़
यह शेल्फ क्लास का एक उपवर्ग है। इसके कंस्ट्रक्टर को पास की गई तानाशाही वस्तु को पहले (), अगले (), पिछले (), अंतिम () और सेट_लोकेशन () विधियों का समर्थन करना चाहिए।
3 DbfilenameShelf
यह शेल्फ़ का एक उपवर्ग भी है, लेकिन एक फ़ाइल नाम को इसके कंस्ट्रक्टर के पैरामीटर के रूप में स्वीकार करता है, न कि तानाशाही वस्तु के।

शेल्फ़ ऑब्जेक्ट बनाने का सबसे आसान तरीका शेल्व मॉड्यूल में परिभाषित ओपन () फ़ंक्शन का उपयोग करना है जो एक DbfilenameShelf ऑब्जेक्ट लौटाता है।

open(filename, flag = 'c', protocol=None, writeback = False)

फ़ाइल नाम पैरामीटर बनाए गए डेटाबेस को सौंपा गया है।

फ़्लैग पैरामीटर के लिए डिफ़ॉल्ट मान रीड/राइट एक्सेस के लिए 'c' है। अन्य झंडे हैं 'w' (केवल लिखें) 'r' (केवल पढ़ने के लिए) और 'n' (पढ़ने/लिखने के साथ नया)

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

निम्नलिखित कोड एक डेटाबेस बनाता है और उसमें शब्दकोश प्रविष्टियों को संग्रहीत करता है।

import shelve
s = shelve.open("test")
s['name'] = "Ajay"
s['age'] = 23
s['marks'] = 75
s.close()

यह वर्तमान निर्देशिका में test.dir फ़ाइल बनाएगा और कुंजी-मूल्य डेटा को हैशेड रूप में संग्रहीत करेगा। शेल्फ़ ऑब्जेक्ट में निम्नलिखित विधियाँ उपलब्ध हैं -

<टेबल> <थहेड> क्रमांक विधि और विवरण 1 बंद करें ()
लगातार तानाशाही वस्तु को सिंक्रनाइज़ और बंद करें।
2 सिंक ()
यदि शेल्फ़ को राइटबैक ट्रू पर सेट करके खोला गया था, तो कैशे में सभी प्रविष्टियाँ वापस लिखें।
3 प्राप्त करें ()
कुंजी के साथ जुड़ा मूल्य लौटाता है
4 आइटम ()
टुपल्स की सूची - प्रत्येक टपल कुंजी मूल्य जोड़ी है
5 कुंजी ()
शेल्फ चाबियों की सूची
6 पॉप ()
निर्दिष्ट कुंजी हटाएं और संबंधित मान वापस करें।
7 अपडेट ()
किसी अन्य dict/iterable से शेल्फ़ अपडेट करें
8 मान ()
शेल्फ मूल्यों की सूची

शेल्फ़ में किसी विशेष कुंजी के मूल्य तक पहुँचने के लिए।

>>> s=shelve.open('test')
>>> s['age']
23
>>> s['age']=25
>>> s.get('age')
25

आइटम (), कुंजियाँ () और मान () विधियाँ दृश्य वस्तुओं को लौटाती हैं।

>>> list(s.items())
[('name', 'Ajay'), ('age', 25), ('marks', 75)]
>>> list(s.keys())
['name', 'age', 'marks']
>>> list(s.values())
['Ajay', 25, 75]

शेल्फ से की-वैल्यू पेयर निकालने के लिए

>>> s.pop('marks')
75
>>> list(s.items())
[('name', 'Ajay'), ('age', 25)]

ध्यान दें कि की-वैल्यू जोड़ी मार्क्स-75 को हटा दिया गया है।

किसी अन्य शब्दकोश के आइटम्स को शेल्फ यूज़ अपडेट () पद्धति के साथ मर्ज करने के लिए

>>> d={'salary':10000, 'designation':'manager'}
>>> s.update(d)
>>> list(s.items())
[('name', 'Ajay'), ('age', 25), ('salary', 10000), ('designation', 'manager')]

इस लेख में हमने शेल्व मॉड्यूल के बारे में सीखा जो लगातार डिक्शनरी ऑब्जेक्ट को स्टोर करने के लिए सुविधाजनक तंत्र प्रदान करता है।


  1. पायथन वस्तु तुलना "है" बनाम "=="

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

  1. पायथन में किसी वस्तु को कैसे नष्ट करें?

    एक वर्ग विशेष विधि __del__() को लागू करता है, जिसे डिस्ट्रक्टर कहा जाता है, जिसे तब लागू किया जाता है जब इंस्टेंस नष्ट होने वाला होता है। इस पद्धति का उपयोग किसी उदाहरण द्वारा उपयोग किए गए किसी भी गैर-स्मृति संसाधनों को साफ करने के लिए किया जा सकता है। उदाहरण यह __del__() विनाशक उस उदाहरण के वर्ग न

  1. पायथन में टाइम टुपल क्या है?

    datetime.date उदाहरणों की timetuple() विधि time.struct_time प्रकार की वस्तु लौटाती है। स्ट्रक्चर_टाइम एक नामित टपल ऑब्जेक्ट है (एक नामित टपल ऑब्जेक्ट में ऐसे गुण होते हैं जिन्हें किसी इंडेक्स या नाम से एक्सेस किया जा सकता है)। डेलाइट सेविंग टाइम सक्रिय है या नहीं यह इंगित करने के लिए स्ट्रक्चर_टाइम