Wie erhalte ich die Referenzanzahl eines PyObject?

Lesezeit: 1 Minute

Benutzeravatar von DLunin
DLunin

So erhalten Sie die Referenzanzahl von a PyObject aus C++?

Es gibt Funktionen Py_INCREF Und Py_DECREF die es erhöhen/verringern, aber ich habe keine Funktion gefunden, die die Referenzanzahl des Objekts zurückgibt.

Ich brauche es für Debugging-Zwecke.

Die Referenzanzahl jedes einzelnen Objekts wird in gespeichert PyObject selbst, in einer Variablen namens ob_refcnt. Darauf können Sie direkt zugreifen.

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

Alternativ können Sie die verwenden Py_REFCNT Makro.

  • Ich würde mich besser auf das Makro verlassen als auf interne Strukturmitglieder, die sich wahrscheinlich nicht garantiert nicht ändern.

    – Kapichu

    8. Mai 2017 um 22:23 Uhr

1443600cookie-checkWie erhalte ich die Referenzanzahl eines PyObject?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy