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

पायथन वीक रेफरेंसेस

पायथन में वीक रेफरेंसेस बनाने के लिए, हमें weakref मॉड्यूल का उपयोग करने की आवश्यकता है। वीक रेफरेंस ऑब्जेक्ट को जीवित रखने के लिए पर्याप्त नहीं है। वीक रेफरेंस का एक बुनियादी उपयोग बड़े ऑब्जेक्ट के लिए कैश या मैपिंग्स को लागू करना है।

इस मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए।

import weakref

सभी ऑब्जेक्ट्स को वीकली रेफरेंस नहीं किया जा सकता। टपल या इंट जैसे कुछ बिल्ट-इन टाइप्स, वीक रेफरेंस का समर्थन नहीं करते हैं। वीक रेफरेंस से संबंधित कुछ क्लासेस और मेथड्स हैं।

क्लास weakref.ref(object[, callback])

यह ऑब्जेक्ट के लिए एक वीक रेफरेंस लौटाएगा। जब रेफरेंट अभी भी जीवित है, तो वास्तविक ऑब्जेक्ट को रेफरेंस ऑब्जेक्ट को कॉल करके प्राप्त किया जा सकता है, लेकिन जब वास्तविक ऑब्जेक्ट मौजूद नहीं है, तो यह None लौटाएगा।

मेथड weakref.proxy(object[, callback])

यह मेथड ऑब्जेक्ट के लिए एक प्रॉक्सी लौटाने के लिए उपयोग किया जाता है, जो वीक रेफरेंस का उपयोग कर रहे हैं। लौटाया गया ऑब्जेक्ट या तो ProxyType या CallableProxyType हो सकता है।

मेथड weakref.getweakrefcount(object)

यह मेथड ऑब्जेक्ट्स के वीक रेफरेंसेस और प्रॉक्सीज की संख्या लौटाने के लिए उपयोग किया जाता है।

मेथड weakref.getweakrefs(object)

यह मेथड वीक रेफरेंसेस और प्रॉक्सी ऑब्जेक्ट्स की सूची लौटाने के लिए उपयोग किया जाता है।

उदाहरण कोड

import weakref

class my_list(list):
    pass

new_list = my_list('String') # लिस्ट परिभाषित करने के लिए my_list क्लास का उपयोग करें
print(new_list)

weak_ref = weakref.ref(new_list)
new_weak_list = weak_ref()
new_proxy = weakref.proxy(new_list)

print(new_weak_list)
print('The object using proxy: ' + str(new_proxy))

if new_list is new_weak_list:
    print("There is a weak reference")

print('The Number of Weak references: ' + str(weakref.getweakrefcount(new_list)))

del new_list, new_weak_list # दोनों ऑब्जेक्ट्स डिलीट करें
print("The weak reference is: " + str(weak_ref()))

आउटपुट

['S', 't', 'r', 'i', 'n', 'g']
['S', 't', 'r', 'i', 'n', 'g']
The object using proxy: ['S', 't', 'r', 'i', 'n', 'g']
There is a weak reference
The Number of Weak references: 2
The weak reference is: None
  1. पायथन ऑब्जेक्ट तुलना:  is  बनाम  == पायथन ऑब्जेक्ट तुलना: "is" बनाम "=="

    इस लेख में हम ऑब्जेक्ट तुलना यानी is ऑपरेटर और समानता ऑपरेटर == के बीच अंतर के बारे में जानेंगे। समानता ऑपरेटर पास किए गए आर्गुमेंट के मान पर काम करता है जबकि is ऑपरेटर पास किए गए दो ऑब्जेक्ट्स के रेफरेंस की तुलना करता है। समानता ऑपरेटर के मामले में आर्गुमेंट की सामग्री की तुलना की जाती है, उनके रेफ

  1. - Python में ऑब्जेक्ट को कैसे नष्ट करें?

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

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

    datetime.date इंस्टेंसेज का timetuple() मेथड time.struct_time टाइप का ऑब्जेक्ट लौटाता है। struct_time एक नेम्ड टपल ऑब्जेक्ट है (एक नेम्ड टपल ऑब्जेक्ट में एट्रिब्यूट्स होते हैं जिन्हें इंडेक्स या नाम से एक्सेस किया जा सकता है)। struct_time ऑब्जेक्ट में डेट और टाइम फील्ड्स दोनों को दर्शाने के लिए एट