En Java, por ejemplo al declarar una clase persona, en un principio yo accedía directamente a los atributos de la clase para inicializarlos desde dentro del constructor, de la siguiente manera:
Código:
public class Persona {
private String nombre;
private int edad;
public Persona(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setEdad(int edad) {
this.edad = edad;
}
}
Pero luego, me acostumbré a llamar a los métodos set desde dentro del constructor (para que estos se encarguen de la inicialización) como muestro a continuación:
Código:
public class Persona {
private String nombre;
private int edad;
public Persona(String nombre, int edad) {
setNombre(nombre);
setEdad(edad);
}
public String getNombre() {
return nombre;
}
public int getEdad() {
return edad;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setEdad(int edad) {
this.edad = edad;
}
}
Bueno, intenté hacer lo mismo en Python. En ese nuevo lenguaje me sale de la primera forma:
Código:
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def getNombre(self):
return self.nombre
def getEdad(self):
return self.edad
def setNombre(self, nombre):
self.nombre = nombre
def setEdad(self, edad):
self.edad = edad
Y de la segunda forma lo hago así:
Código:
class Persona:
def __init__(self, nombre, edad):
self.setNombre(nombre)
self.setEdad(edad)
def getNombre(self):
return self.nombre
def getEdad(self):
return self.edad
def setNombre(self, nombre):
self.nombre = nombre
def setEdad(self, edad):
self.edad = edad
Mi pregunta era si es que está bien eso que estoy haciendo, osea, llamar a los métodos set desde dentro del constructor de la clase (La segunda forma) . ¿Creen que sea una mala práctica?