Heim > Backend-Entwicklung > Python-Tutorial > Können Python-Variablen-IDs umgekehrt werden, um ihre ursprünglichen Objekte zu dereferenzieren?

Können Python-Variablen-IDs umgekehrt werden, um ihre ursprünglichen Objekte zu dereferenzieren?

Patricia Arquette
Freigeben: 2024-10-19 10:51:02
Original
960 Leute haben es durchsucht

Can Python Variable IDs Be Reversed to Dereference Their Original Objects?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage