Ver Mensaje Individual
  #10 (permalink)  
Antiguo 15/10/2009, 20:44
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 2 meses
Puntos: 1360
Respuesta: comenzando con python

El error esta aquí:
Código python:
Ver original
  1. __nombre = property(getNombre, setNombre)
  2.     __apellido = property(getApellido, setApellido)
  3.     __dni = property(getDni, setDni)
Lo que pasa es que empieza a hacerse recursivo. Por que __nombre ya es una función dentro de la clase.

Si estas al nivel de la clase te darás cuenta que no necesitas usar self, pero cuando estas haciendo un método de la clase. Es necesario usar el self.

Cuando deberia de ser:
Código python:
Ver original
  1. nombre = property(getNombre, setNombre)
  2.     apellido = property(getApellido, setApellido)
  3.     dni = property(getDni, setDni)

Desintoxícate de Java leyendo un rato:
python para todos o dive into python.

Y claro sigue posteando tus dudas.

Para ser sincero usaría "property" para cuando tenga que hacer procedimientos para obtener o ajustar algo.

Un ejemplo seria una clase empleado, donde dependiendo de lo que tengas en la variable puesto calcules el sueldo que es una propiedad privada. Al ajustar el puesto automáticamente cambias el sueldo. Para no estar calculando el sueldo cada vez que lo pidas.

Pero en esta clase Persona, seria perfectamente normal lo siguiente.
Código python:
Ver original
  1. class Persona(object):
  2.     """Clase Persona"""
  3.     def __init__(self, nombre="", apellido="", dni=""):
  4.         """Constructor"""
  5.         self.nombre = nombre
  6.         self.apellido = apellido
  7.         self.dni = dni

En resumen usa solo property para cuando tengas que hacer operaciones extras.
O para hacer variables que solo se puedan asignar pero no obtener.
O variables que se puedan obtener pero no asignar.