Estoy trabajando con una clase que emula una lista de Python. Quiero devolverlo como una lista de Python() cuando accedo sin un índice.Emulando una lista en Python
con una lista normal():
>>> a = [1,2,3] >>> a [1,2,3]
lo que estoy haciendo, esencialmente:
>>> a = MyList([1,2,3]) >>> a <MyList object at 0xdeadbeef>
no puedo averiguar qué método dunder (si los hay) que me permitirá personalizar este comportamiento?
Creo que sería __ get __? a pesar de que list() no implementa get/set/delete - supongo porque es un built-in?
he publicado una respuesta, pero en realidad no estoy seguro de lo que quiere decir. ¿Puedes dar un ejemplo de lo que quieres lograr? Si desea mostrar su lista cuando escribe 'a' en la consola, entonces está buscando el método' __repr__' –
Lo que está viendo en el shell interactivo cuando ingresa solo el nombre es la cadena repr (REPResentational) . Lo mismo con el primero, donde una lista real emite una cadena que se parece al código fuente. Idealmente, 'eval (repr (object))' debería funcionar para tipos simples. Entonces, no estás "accediendo" cuando lo muestras así, sino que lo "codificas". – Keith
sí, eso es exactamente lo que estaba buscando. Estaba confundido acerca de lo que realmente estaba sucediendo allí. – la11111