2010-06-07 10 views
5

मैं पाइथन से सी ++ कक्षा में कुछ कमजोर पड़ रहा हूं, लेकिन सी ++ विनाशक सक्रिय रूप से रेफरी तक पहुंचने की कोशिश कर रहे हैं जब वास्तविक वस्तु पहले से ही मर चुकी है, जाहिर है यह दुर्घटनाग्रस्त हो जाती है ...पायथन - यह जांचने के लिए कि क्या कमजोर संदर्भ अभी भी उपलब्ध है

क्या कोई पाइथन सी/एपीआई दृष्टिकोण यह पता लगाने के लिए है कि क्या पाइथन संदर्भ अभी भी जिंदा है या इसके लिए कोई अन्य ज्ञात कामकाज है?

धन्यवाद

उत्तर

2

यदि आप कमजोर संदर्भ पर PyWeakref_GetObject को कॉल करते हैं तो इसे या तो Py_None या NULL वापस करना चाहिए, मैं भूल जाता हूं। लेकिन आपको यह जांचना चाहिए कि क्या यह उनमें से एक को वापस कर रहा है और यह आपको बताएगा कि संदर्भित वस्तु अब ज़िंदा नहीं है।

3

Python C API प्रलेखन से:

PyObject * PyWeakref_GetObject (PyObject * रेफरी)
वापसी मूल्य: उधार संदर्भ।
एक कमजोर संदर्भ से संदर्भित वस्तु को वापस करें, रेफरी। यदि रेफरेंस अब लाइव नहीं है, तो कोई भी नहीं लौटाता है। संस्करण 2.2 में नया।

संबंधित मुद्दे