"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या पायथन में ऑब्जेक्ट तक पहुंचने के लिए वेरिएबल की आईडी को संसाधित किया जा सकता है?

क्या पायथन में ऑब्जेक्ट तक पहुंचने के लिए वेरिएबल की आईडी को संसाधित किया जा सकता है?

2024-11-08 को प्रकाशित
ब्राउज़ करें:429

Can a Variable\'s ID be Processed to Access the Object in Python?

क्या किसी वेरिएबल की आईडी को डीरेफ़रेंस किया जा सकता है?

पायथन में, आईडी() फ़ंक्शन किसी ऑब्जेक्ट के लिए अद्वितीय पहचानकर्ता लौटाता है। इस पहचानकर्ता को एक वेरिएबल में संग्रहीत किया जा सकता है, लेकिन क्या इस वेरिएबल की आईडी को संदर्भित किया जा सकता है?

शैक्षणिक दृष्टिकोण से, उत्तर हां है। _ctypes मॉड्यूल एक फ़ंक्शन, PyObj_FromPtr() प्रदान करता है, जो एक पॉइंटर को पायथन ऑब्जेक्ट में परिवर्तित कर सकता है। इस फ़ंक्शन का उपयोग करके, हम एक वेरिएबल की आईडी को डीरेफ़रेंस करने के लिए एक उपयोगिता फ़ंक्शन बना सकते हैं:

import _ctypes

def di(obj_id):
    """ Inverse of id() function. """
    return _ctypes.PyObj_FromPtr(obj_id)

यह फ़ंक्शन वेरिएबल की आईडी को एक तर्क के रूप में लेता है और संबंधित ऑब्जेक्ट लौटाता है। उदाहरण के लिए:

a = 42
b = 'answer'
print(di(id(a)))  # Output: 42
print(di(id(b)))  # Output: answer

चेतावनी:

हालांकि यह तकनीक सैद्धांतिक रूप से संभव है, यह ध्यान रखना महत्वपूर्ण है कि इस पर विचार किया जाता है कुछ डेवलपर्स द्वारा असुरक्षित। _ctypes मॉड्यूल को C कोड के साथ इंटरेक्शन के लिए डिज़ाइन किया गया है, और Python ऑब्जेक्ट्स को डीरेफ़रेंस करने के लिए इसके उपयोग से अप्रत्याशित व्यवहार या अस्थिरता हो सकती है।

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

विज्ञप्ति वक्तव्य यह लेख यहां पुनर्मुद्रित है: 1729304237 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3