Maison >développement back-end >Tutoriel Python >Les ID de variables Python peuvent-ils être inversés pour déréférencer leurs objets d'origine ?
Les ID de variable peuvent-ils être déréférencés en Python ?
Il vaut la peine d'explorer si les ID de variable récupérés à l'aide de la fonction id en Python peuvent être déréférencés. Considérez la requête suivante :
dereference(id(a)) == a
Bien qu'il existe des approches plus pratiques pour y parvenir, nous y approfondirons d'un point de vue académique.
Réponse
Une fonction utilitaire peut être utilisée, compatible à la fois avec Python 2 et Python 3. Cependant, il est important de noter que la sécurité de la fonction est débattue et certains experts déconseillent fortement son utilisation.
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
Cette fonction inverse l'opération id(), permettant la récupération de l'objet d'origine à partir de son ID de variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!