Ver Mensaje Individual
  #9 (permalink)  
Antiguo 15/10/2009, 12:58
Avatar de navarone86
navarone86
 
Fecha de Ingreso: octubre-2009
Mensajes: 62
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: comenzando con python

nunca se me habría ocurrido usar así lo de los parámetros opcionales, muchas gracias de nuevo

sigo teniendo problemas para hacer esta clase de prueba, y me temo que son porque estoy demasiado acostumbrado a java

la clase esta así:

Código:
class Persona(object):
	"""Clase Persona"""
		
	def __init__(self, nombre="", apellido="", dni=""):
		"""Constructor"""
#		self.setNombre(nombre)
#		self.setApellido(apellido)
#		self.setDni(dni)
		self.__nombre = nombre
		self.__apellido = apellido
		self.__dni = dni

	def getNombre(self):
		return self.__nombre
		
	def setNombre(self, n):
		self.__nombre = n
	
	def getApellido(self):
		return self.__apellido
		
	def setApellido(self, a):
		self.__apellido = a
		
	def getDni(self):
		return self.__nombre
		
	def setDni(self, d):
		self.__dni = d
		
	__nombre = property(getNombre, setNombre)
	__apellido = property(getApellido, setApellido)
	__dni = property(getDni, setDni)
cuando trato de crear un objeto de la clase Persona, me sale el siguiente error:

Código:
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    fulanito= Persona()
  File "<pyshell#5>", line 9, in __init__
    self.__nombre = nombre
  File "<pyshell#5>", line 17, in setNombre
    self.__nombre = n
  File "<pyshell#5>", line 17, in setNombre
    self.__nombre = n
...
...
que es lo que hago mal ??


y lo de antes: no se pueden usar dentro del constructor los setters, no ? en un ejemplo de internet lo vi así, y me pareció que quedaba mas elegante el código, pero probando me cascaba siempre, así que por eso creo que no se puede, pero no lo se seguro.


1 saludo