Können Variablen-IDs in Python dereferenziert werden?
Es lohnt sich zu untersuchen, ob Variablen-IDs, die mit der ID-Funktion in Python abgerufen werden, dereferenziert werden können. Betrachten Sie die folgende Abfrage:
dereference(id(a)) == a
Es gibt zwar praktischere Ansätze, um dies zu erreichen, wir werden uns jedoch aus akademischer Sicht damit befassen.
Antwort
Es kann eine Dienstprogrammfunktion verwendet werden, die sowohl mit Python 2 als auch mit Python 3 kompatibel ist. Es ist jedoch wichtig zu beachten, dass die Sicherheit der Funktion umstritten ist und einige Experten dringend von ihrer Verwendung abraten.
import _ctypes def di(obj_id): """ Inverse of id() function. """ return _ctypes.PyObj_FromPtr(obj_id) if __name__ == '__main__': a = 42 b = 'answer' print(di(id(a))) # -> 42 print(di(id(b))) # -> answer
Diese Funktion kehrt die Operation id() um und ermöglicht den Abruf des ursprünglichen Objekts aus seiner Variablen-ID.
Das obige ist der detaillierte Inhalt vonKönnen Python-Variablen-IDs umgekehrt werden, um ihre ursprünglichen Objekte zu dereferenzieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!