Ich habe versucht, dies in der Dokumentation zu finden, aber habe nichts gefunden, was mir hilft. Das Dokument sagt:
from_address(address)
Diese Methode gibt einen ctypes-Typ zurück Instanz unter Verwendung des Speichers, der durch die Adresse angegeben wird, die eine Ganzzahl sein muss.
Diese Methode und andere, die diese Methode indirekt aufrufen, lösen ein Überwachungsereignis ctypes.cdata mit dem Argument Adresse aus.
Es wurde nicht erwähnt Referenzanzahl (zumindest kann ich es nicht herausfinden). Ich habe es versucht und das scheint richtig zu sein:
Code: Select all
Python 3.13.1 (main, Dec 3 2024, 17:59:52) [Clang 16.0.0 (clang-1600.0.26.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, sys
>>> name = "some random name 123"
>>> sys.getrefcount(name)
2
>>> ctypes.c_long.from_address(id(name)).value
1
>>> x, y = name, name
>>> sys.getrefcount(name)
4
>>> ctypes.c_long.from_address(id(name)).value
3