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:

Código:
def getSueldo(self):
    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
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
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.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)