पायथन में कमजोर संदर्भ बनाने के लिए, हमें कमजोर . का उपयोग करने की आवश्यकता है मापांक। कमजोर वस्तु को जीवित रखने के लिए पर्याप्त नहीं है। कमजोर संदर्भ का मूल उपयोग किसी बड़ी वस्तु के लिए कैश या मैपिंग को लागू करना है।
इस मॉड्यूल का उपयोग करने के लिए, हमें इसका उपयोग करके आयात करना चाहिए -
import weakref
सभी वस्तुओं को कमजोर रूप से संदर्भित नहीं किया जा सकता है। कुछ अंतर्निर्मित प्रकार जैसे टपल या इंट, कमजोर संदर्भ का समर्थन नहीं करते हैं। कमजोर संदर्भ से संबंधित कुछ वर्ग और विधियां हैं।
कक्षा कमजोररेफ.रेफ(ऑब्जेक्ट[, कॉलबैक])
यह वस्तु के लिए एक कमजोर संदर्भ लौटाएगा। जब रेफरेंस अभी भी जीवित है, वास्तविक ऑब्जेक्ट को रेफरेंस ऑब्जेक्ट को कॉल करके प्राप्त किया जा सकता है, लेकिन जब वास्तविक ऑब्जेक्ट मौजूद नहीं है, तो यह कोई नहीं लौटाएगा। ।
विधि कमजोररेफ.प्रॉक्सी(ऑब्जेक्ट[, कॉलबैक])
इस विधि का उपयोग उस वस्तु के लिए एक प्रॉक्सी को वापस करने के लिए किया जाता है, जो कमजोर संदर्भ का उपयोग कर रही है। लौटाई गई वस्तु या तो ProxyType या CallableProxyType हो सकती है।
विधि कमजोरref.getweakrefcount(ऑब्जेक्ट)
इस पद्धति का उपयोग कमजोर संदर्भों और वस्तुओं के परदे के पीछे की संख्या को वापस करने के लिए किया जाता है।
विधि कमजोररेफ.getweakrefs(ऑब्जेक्ट)
इस पद्धति का उपयोग कमजोर संदर्भों और प्रॉक्सी वस्तुओं की सूची वापस करने के लिए किया जाता है।
उदाहरण कोड
import weakref class my_list(list): pass new_list = my_list('String') #Use my_list class to define a 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 #Delete both objects 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