Foros del Web » Programando para Internet » Python »

Punteros en python?

Estas en el tema de Punteros en python? en el foro de Python en Foros del Web. Buenas, tengo una Pregunta básica sobre asignación, la pregunta es la siguiente: Tengo un grupo de Objetos creados en memoria "OBJETOS" que contienten "OBJ" En ...
  #1 (permalink)  
Antiguo 08/11/2011, 06:49
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 14 años, 3 meses
Puntos: 0
Punteros en python?

Buenas, tengo una Pregunta básica sobre asignación, la pregunta es la siguiente:

Tengo un grupo de Objetos creados en memoria "OBJETOS" que contienten "OBJ"

En determinado momento asigno uno de ellos a un atributo de otra clase que no es del tipo "OBJ"

O sea a la clase "PEPE" le asigno a un atributo --> self.miObjeto = OBJETOS.OBJX

La pregunta es: Python me crea un NUEVO OBJETO (o sea mas memoria, y hace una copia del mismo) o crea un puntero a OBJETOS.OBJX ??

Saludos
Diego
  #2 (permalink)  
Antiguo 08/11/2011, 10:00
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Punteros en python?

En Python las copias se hacen de forma explícita, a menos que quieras copiar el objeto siempre estarás copiando una referencia a él.

Un ejemplo más simple:

Código Python:
Ver original
  1. >>> a = ['Hola']
  2. >>> b = a
  3. >>> a is b
  4. True
  5. >>> b = a[:] # copia explícita
  6. >>> b is a
  7. False
  #3 (permalink)  
Antiguo 08/11/2011, 10:03
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Punteros en python?

Esta es otra de esas preguntas largas que tiene que ver con lo siguientes temas:
  1. Clases de nuevo estilo
  2. Datos mutables e inmutables
  3. Asignación de variables
  4. Paso por llamada

Pero voy a ser muy breve, cada vez que haces una asignación lo que haces es poner una etiqueta a ese objeto (recuerda un objeto es cualquier cosa que espacio en memoria), si ese objeto no tiene ninguna etiqueta asociada la memoria es liberada por el recolector de basura.

En ningún momento hace copia del objeto a menos que lo haga explicitamente.
  #4 (permalink)  
Antiguo 08/11/2011, 11:06
 
Fecha de Ingreso: agosto-2010
Ubicación: Montevideo
Mensajes: 59
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Punteros en python?

Bueno muchas gracias!! quedo claro el asunto.

Saludos

Etiquetas: punteros
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 16:53.