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