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

पायथन कमजोर संदर्भ

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

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

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

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

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

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

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

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

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