पायथन में वेरिएबल आईडी से ऑब्जेक्ट संदर्भ पुनर्प्राप्त करना
पायथन में आईडी() फ़ंक्शन किसी ऑब्जेक्ट की विशिष्ट पहचान लौटाता है। यह आश्चर्य की बात है कि क्या इस प्रक्रिया को उलटना और उसकी आईडी से ऑब्जेक्ट प्राप्त करना संभव है। ]dereference(id(a)) == a
इस प्रश्न पर विचार करते समय पायथॉन में डीरेफरेंसिंग की अवधारणा और इसकी संभावितता को समझना महत्वपूर्ण है।
dereference(id(a)) == aपायथन में डीरेफरेंसिंग
डीरेफ़रेंसिंग में एक वेरिएबल आईडी से अंतर्निहित ऑब्जेक्ट या मान को पुनर्प्राप्त करना शामिल है। दुर्भाग्य से, पायथन किसी आईडी को सीधे डीरेफ़रेंस करने के लिए एक मूल तंत्र प्रदान नहीं करता है।
शैक्षणिक दृष्टिकोणपायथन की अंतर्निहित क्षमताओं की सीमाओं के बावजूद, इसे विकसित करना संभव है एक उपयोगिता फ़ंक्शन जो आईडी() फ़ंक्शन के व्युत्क्रम का अनुकरण करता है। यह फ़ंक्शन, di(), अपनी आईडी से ऑब्जेक्ट संदर्भ पुनर्प्राप्त करने के लिए सी-स्तरीय एपीआई और प्रकार अनुमान के संयोजन का उपयोग करता है:
import _ctypes def di(obj_id): return _ctypes.PyObj_FromPtr(obj_id)import _ctypes
def di(obj_id):
return _ctypes.PyObj_FromPtr(obj_id)
di() फ़ंक्शन का उपयोग करके, हम मूल ऑब्जेक्ट को उसकी आईडी से पुनः प्राप्त कर सकते हैं:a = 42 बी = 'उत्तर' प्रिंट(di(id(a))) # -> 42 print(di(id(b))) # -> उत्तर
सावधानीdereference(id(a)) == a
हालांकि यह दृष्टिकोण पायथन में वैरिएबल आईडी को डीरेफ़रेंस करने की सैद्धांतिक समझ प्रदान करता है, लेकिन यह महत्वपूर्ण है ध्यान दें कि संभावित मेमोरी सुरक्षा और स्थिरता के मुद्दों के कारण di() फ़ंक्शन का उपयोग सावधानी से किया जाना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3