2014-10-01 14 views
10

सी ++ से PyObject की संदर्भ संख्या कैसे प्राप्त करें?PyObject की संदर्भ संख्या कैसे प्राप्त करें?

फ़ंक्शन Py_INCREF और Py_DECREF हैं जो इसे बढ़ाते/घटाते हैं, लेकिन मुझे कोई फ़ंक्शन नहीं मिला है जो ऑब्जेक्ट की संदर्भ संख्या को वापस कर देता है।

मुझे इसे डिबगिंग उद्देश्यों के लिए चाहिए।

उत्तर

11

प्रत्येक ऑब्जेक्ट की संदर्भ संख्या में ob_refcnt नामक चर में संग्रहीत की जाती है। आप सीधे उस तक पहुंच सकते हैं।

typedef struct _object { 
    _PyObject_HEAD_EXTRA 
    Py_ssize_t ob_refcnt;   # Reference count 
    struct _typeobject *ob_type; 
} PyObject; 

वैकल्पिक रूप से, आप Py_REFCNT Macro का उपयोग कर सकते हैं।

+0

मैं बेहतर आंतरिक संरचना सदस्यों की तुलना में मैक्रो पर भरोसा करता हूं जो शायद बदलने की गारंटी नहीं है .. – Kapichu

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