Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
aprendiendo python
#1
Buenos dias. tengo la siguiente duda si depronto alguien me puede colaborar, soy nuevo en python y emprendi este camino recientemente y ps como ya saben seguro en algun punto todos nos hemos estancado y esto es lo que me ha pasado a mi. Tengo el siguiente inconveniente:

Creo una clase persona y en el "constructor", creo un atributo "privado", creo los geters y seters para acceder a ellos pero al momento de crear un objeto de tipo Persona me retorna de los valores que son "publico" como vamos a ver en el ejemplo, mas no me retorna el valor publico como tal sino una direccion en memoria. ¿Como hago para ver el valor que ha tomado sueldo?

#encaptulamiento

class Persona(object):
def __init__(self, pnombre, pedad, psueldo):
self.setNombre(pnombre)
self.setEdad(pedad)
self.__setSueldo(psueldo)
pass

def setEdad(self, pedad):
self.__pedad = pedad
pass

def getEdad(self):
return self.__pedad
pass

def setNombre(self, pnombre):
self.__pnombre = pnombre
pass

def getNombre(self):
return self.__pnombre
pass

def __setSueldo(self, psueldo):
self.__psueldo = psueldo
pass

def getSueldo(self):
return self.__setSueldo
pass

nombre = property(getNombre, setNombre)
edad = property(getEdad, setEdad)

nuevo = Persona('Manuel', 26, 8000)

print(nuevo.nombre, " gana ", nuevo.getSueldo())

el codigo corre bien y el resultado lo adjunto en la imagen, quisiera saber como acceder a ese valor privado y que me muestre el valor que contiene. si me pueden ayudar muchas gracias de antemano Big Grin
Responder
#2
Hola, ¿cómo estás?

El inconveniente ocurre porque en el método getSueldo estás retornando la función __setSueldo, debería ser:

  1. def getSueldo(self):
  2. return self.__psueldo


Por otro lado, no es necesario colocar la palabra clave pass, únicamente es utilizada para rellenar un bloque vacío para evitar un error de sintaxis.

Saludos
Responder
#3
ooohhhh por Dios!!!!! si era eso ya me retorna lo que deseo Big Grin, muchas gracias por tu aporte francisco, es la primera vez que uso un foro de estos y ha sido muy grata mi experiencia, te agradezco de corazón.
Responder
#4
¡Un placer! Cualquier otra consulta no dudes en crear otro tema Wink.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)