Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Listas de Objetos

Estas en el tema de Listas de Objetos en el foro de Python en Foros del Web. Hola a todos, muy buen día, Soy estudiante de ingeniería en TIC, y yo hice un proyecto cuatrimestral en JAVA, recién pasé a tercer grado. ...
  #1 (permalink)  
Antiguo 05/01/2014, 10:46
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta Listas de Objetos

Hola a todos, muy buen día,

Soy estudiante de ingeniería en TIC, y yo hice un proyecto cuatrimestral en JAVA, recién pasé a tercer grado.
Bueno, como yo soy una persona que no se queda con lo que le dan en la escuela, quiero hacer el mismo proyecto pero en Python, Aquí viene mi duda:

Tengo una Clase llamada Empleado, de la cuál hereda de la Clase Persona.
Tengo la clase Principal que crea e inicializa el objeto de Empleado en un vector.

Así es como tengo el vector.

Código Java:
Ver original
  1. Empleado objEmpleado;
  2.  
  3.         public Empleado [] Empleados;
  4.  
  5.         Empleados = new Empleado[50];
  6.        
  7.         for (int i=0; i<Empleados.length;i++) {
  8.             Empleados[i]= new Empleado();
  9.         }
  10.        
  11.         Empleados[0].Codigo = 0;
  12.         Empleados[0].Nombre = "Pedro";
  13.         Empleados[0].Apellidos = "Perez";
  14.         Empleados[0].Direccion = "Del prado #1122";
  15.         Empleados[0].Telefono = "12341234";
  16.         Empleados[0].Puesto = "Cajero";
  17.         Empleados[0].Contrasena = "0";
  18.        
  19.        
  20.         Empleados[1].Codigo = 1;
  21.         Empleados[1].Nombre = "Ivan";
  22.         Empleados[1].Apellidos = "Vazquez";
  23.         Empleados[1].Direccion = "Elote # 1234";
  24.         Empleados[1].Telefono = "12312312";
  25.         Empleados[1].Puesto = "Almacenista";
  26.         Empleados[1].Contrasena = "1";

Entonces, si yo imprimo datos de Empleados[0].Codigo, se imprimirá : 0

Esto tratando de hacerlo en Python, pero me sobrescribe en el dato anterior, en vez de guardarla como un atributo...

Alguien que por favor me ayude a traducir eso a Python, le estaría muy agradecido.

De antemano Gracias.
  #2 (permalink)  
Antiguo 05/01/2014, 11:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Listas de Objetos

Como no pusiste la definición de clase improvise :D

Código Python:
Ver original
  1. class Empleado(object):
  2.     pass
  3.  
  4. empleados = [Empleado() for i in range(50)]
  5.  
  6. empleados[0].Codigo = 0
  7. empleados[0].Nombre = "Pedro"
  8. empleados[0].Apellidos = "Perez"
  9. empleados[0].Direccion = "Del prado #1122"
  10. empleados[0].Telefono = "12341234"
  11. empleados[0].Puesto = "Cajero"
  12. empleados[0].Contrasena = "0"
  13.  
  14.  
  15. empleados[1].Codigo = 1
  16. empleados[1].Nombre = "Ivan"
  17. empleados[1].Apellidos = "Vazquez"
  18. empleados[1].Direccion = "Elote # 1234"
  19. empleados[1].Telefono = "12312312"
  20. empleados[1].Puesto = "Almacenista"
  21. empleados[1].Contrasena = "1"
  #3 (permalink)  
Antiguo 05/01/2014, 12:06
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Listas de Objetos

Cita:
Iniciado por razpeitia Ver Mensaje
Como no pusiste la definición de clase improvise :D

Código Python:
Ver original
  1. class Empleado(object):
  2.     pass
  3.  
  4. empleados = [Empleado() for i in range(50)]
  5.  
  6. empleados[0].Codigo = 0
  7. empleados[0].Nombre = "Pedro"
  8. empleados[0].Apellidos = "Perez"
  9. empleados[0].Direccion = "Del prado #1122"
  10. empleados[0].Telefono = "12341234"
  11. empleados[0].Puesto = "Cajero"
  12. empleados[0].Contrasena = "0"
  13.  
  14.  
  15. empleados[1].Codigo = 1
  16. empleados[1].Nombre = "Ivan"
  17. empleados[1].Apellidos = "Vazquez"
  18. empleados[1].Direccion = "Elote # 1234"
  19. empleados[1].Telefono = "12312312"
  20. empleados[1].Puesto = "Almacenista"
  21. empleados[1].Contrasena = "1"
Muchas gracias razpeitia, en estos momentos no podré probar tu solución, pero me ha gustado, de esta forma no lo había probado, regresando lo pruebo y si funciona, marco la pregunta como solucionado, Gracias
  #4 (permalink)  
Antiguo 05/01/2014, 21:12
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Listas de Objetos

Muchas Gracias, si me sirvio, perdon que abuse de tu conocimiento, pero como lo tengo que agregar al __init__???, por que por mas que intento no puedo..., o necesitan que haga una nueva pregunta?

Así es como lo tengo por el momento:

Código Python:
Ver original
  1. def __init__(self, Nombre="", Apellidos="", Direccion="", Telefono="", codigo=0):
  2.     self.empleados = [Empleado() for i in range(50)]
  3.  
  4.     self.empleados[0].Codigo = 0
  5.     self.empleados[0].Nombre = "Pedro"
  6.     self.empleados[0].Apellidos = "Perez"
  7.     self.empleados[0].Direccion = "Del prado #1122"
  8.     self.empleados[0].Telefono = "12341234"
  9.     self.empleados[0].Puesto = "Cajero"
  10.     self.empleados[0].Contrasena = "0"
  11.  
  12.     self.empleados[1].Codigo = 1
  13.     self.empleados[1].Nombre = "Ivan"
  14.     self.empleados[1].Apellidos = "Vazquez"
  15.     self.empleados[1].Direccion = "Elote # 1234"
  16.     self.empleados[1].Telefono = "12312312"
  17.     self.empleados[1].Puesto = "Almacenista"
  18.     self.empleados[1].Contrasena = "1"

De antemano, Gracias.

Última edición por robertpro; 05/01/2014 a las 21:15 Razón: Inserción de código
  #5 (permalink)  
Antiguo 05/01/2014, 21:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Listas de Objetos

__init__ es el constructor de tu clase.

Código Python:
Ver original
  1. class Empleado(object):
  2.     def __init__(self, Nombre="", Apellidos="", Direccion="", Telefono="", codigo=0):
  3.         self.Nombre = Nombre
  4.         self.Apellidos = Apellidos
  5.         self.Direccion = Direccion
  6.         self.Telefono = Telefono
  7.         self.codigo = codigo
  8.  
  9. empleados = [Empleado() for i in range(50)]
  10.  
  11. empleados[0].Codigo = 0
  12. empleados[0].Nombre = "Pedro"
  13. empleados[0].Apellidos = "Perez"
  14. empleados[0].Direccion = "Del prado #1122"
  15. empleados[0].Telefono = "12341234"
  16. empleados[0].Puesto = "Cajero"
  17. empleados[0].Contrasena = "0"
  18.  
  19.  
  20. empleados[1].Codigo = 1
  21. empleados[1].Nombre = "Ivan"
  22. empleados[1].Apellidos = "Vazquez"
  23. empleados[1].Direccion = "Elote # 1234"
  24. empleados[1].Telefono = "12312312"
  25. empleados[1].Puesto = "Almacenista"
  26. empleados[1].Contrasena = "1"

Incluso en tu código Java no veo que uses el constructor como deberías.
  #6 (permalink)  
Antiguo 05/01/2014, 21:21
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: Listas de Objetos

¿Al __init__ de qué?
__________________
Grupo Telegram Docker en Español
  #7 (permalink)  
Antiguo 05/01/2014, 22:28
 
Fecha de Ingreso: enero-2014
Mensajes: 4
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Listas de Objetos

Ok, si me di cuenta después del error, y así es como lo tengo ahora; por el momento son todas mis dudas.

Ahhh acerca de lo de JAVA, esos arreglos los introduce en el constructor, ya que según recuerdo el constructor es para inicializar todas las variables que necesiten ser inicializadas, por eso los puse dentro del constructor de JAVA, y me aferré a hacer lo mismo en Python.

Muchísimas gracias por tu apoyo.

Etiquetas: herencia, java, listas, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:47.