Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/06/2011, 10:30
Avatar de OsSk4R
OsSk4R
 
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Metodo no definido... ¿por ser privado?

Buenas,

Continuando con el aprendizaje de Python, concretamente en el apartado de clases, encapsulacion y esas cosas, me topado con un problemilla...

Este problemilla es property, buscando que era y como se usaba he encontrado informacion al respecto que me ha quedado claro qué es.

Ahora bien, intentando ejecutar el siguiente ejemplo:
Código Python:
Ver original
  1. class ser_humano(object):
  2.    
  3.     def __init__(self, edad, altura, peso):
  4.         self.__edad=edad
  5.         self.__altura=altura
  6.         self.__peso=peso
  7.  
  8.     def __getPeso(self):
  9.         return self.__peso
  10.    
  11.     def __setPeso(self, peso = None):
  12.         self.__peso = peso
  13.        
  14.     def __getAltura(self):
  15.         return self.__altura
  16.    
  17.     def __setAltura(self, altura = None):
  18.         self.__altura = altura
  19.        
  20.     def __getEdad(self):
  21.         return self.__edad
  22.    
  23.     def __setEdad(self, edad = None):
  24.         self.__edad = edad
  25.        
  26. peso = property(fget = __getPeso, fset = __setPeso, doc = 'Peso')
  27. edad = property(fget = __getEdad, fset = __setEdad, doc= 'Edad')
  28. altura = property(fget = __getAltura, fset = __setAltura, doc = 'Altura')
  29.    
  30. a = ser_humano(29,1.65,98)
  31. a.peso

Desconozco el porque me tira el siguiente error:
peso = property(fget = __getPeso, fset = __setPeso, doc = 'Peso')
NameError: name '__getPeso' is not defined

¿Por qué dice que no esta definida? ¿Por que es privada?
Estoy usando la ultima versión de Python.
Muchas gracias,