
Referencia a atributos/metodos de objetos añadidos a listas con append
Publicado por Constantino (1 intervención) el 22/12/2015 13:37:19
Muy buenas
La siguiente incidencia la he probado en el el Shell de Python y en PyCharm
# Si añado los objetos a la lista mediante append no se despliegan sugerencias de los atributos y métodos asociados al objeto cuando elijo un elemento de la lista mediante indice. Veamoslo mediante un ejemplo sencillo:
class Objeto():
def __init__(self, nombre):
self.nombre = nombre
obj1 = (Objetos("Juan"))
obj2 = (Objetos("Mario"))
objetos = []
objetos.append(obj1)
objetos.append(obj2)
print (obj1.nombre) --- > Aquí si me sale como sugerencia el atributo nombre
print (obj [0].nombre) ---- > Aquí me dice que no hay sugerencias. La instrucción se ejecuta correctamente
# Si creo los objetos y luego los añado a una lista directamente sin la instrucción append, entonces si se despliegan los atributos y métodos asociados al objeto
lista = [obj1, obj2]
# Si añado los objetos de esta manera si se me despliegan como sugerencia los atributos y métodos del objeto. Tanto haciendo referencia al indice de la lista como al nombre del objeto
print (lista[0].nombre) ---> Aqui si me sale como sugerencia el atributo nombre
print (obj1.nombre) -----> Aqui también me sale la sugerencia
___________________________________________
¿ Esto a que es debido ? Cuando tengo que crear 98 objetos de forma recursiva con 15 atributos y otros tantos métodos, el hecho de que no me aparezca la sugerencia es un problema
Muchas gracias
La siguiente incidencia la he probado en el el Shell de Python y en PyCharm
# Si añado los objetos a la lista mediante append no se despliegan sugerencias de los atributos y métodos asociados al objeto cuando elijo un elemento de la lista mediante indice. Veamoslo mediante un ejemplo sencillo:
class Objeto():
def __init__(self, nombre):
self.nombre = nombre
obj1 = (Objetos("Juan"))
obj2 = (Objetos("Mario"))
objetos = []
objetos.append(obj1)
objetos.append(obj2)
print (obj1.nombre) --- > Aquí si me sale como sugerencia el atributo nombre
print (obj [0].nombre) ---- > Aquí me dice que no hay sugerencias. La instrucción se ejecuta correctamente
# Si creo los objetos y luego los añado a una lista directamente sin la instrucción append, entonces si se despliegan los atributos y métodos asociados al objeto
lista = [obj1, obj2]
# Si añado los objetos de esta manera si se me despliegan como sugerencia los atributos y métodos del objeto. Tanto haciendo referencia al indice de la lista como al nombre del objeto
print (lista[0].nombre) ---> Aqui si me sale como sugerencia el atributo nombre
print (obj1.nombre) -----> Aqui también me sale la sugerencia
___________________________________________
¿ Esto a que es debido ? Cuando tengo que crear 98 objetos de forma recursiva con 15 atributos y otros tantos métodos, el hecho de que no me aparezca la sugerencia es un problema
Muchas gracias
Valora esta pregunta


0