Un constructor es un metodo especial que Python llama para instanciar un objeto usando las definiciones encontradas en tu clase. Python usa este constructor para crear tareas como la inicialización (asignar valores a variables), que se necesiten para iniciar. Los constructores tambien pueden verificar que tambien hay suficientes recursos para que el objecto desempeñe cualquier otra tarea para iniciar.
Le nombre de constructor es siempre el mismo, por ejemplo __init__()
. El constructor puede aceptar argumentos cuando es necesario crear objetos. Cuando tu puedas crear una clase sin la necesidad de un constructor, Python automaticamente crea un constructor vacio que no hace nada. Cada clase debe tener un constructur aun cuando simplemente dependa del constructor defacto.
En los siguientes pasos mostraremos como crear un constructor:
Tenemos el siguiente código:
class Mi_Clase:
Saludos = "
def __init__(self, Nombre="todos"):
self.Saludos = Nombre + "!"
def Di_Hola(self):
print("Hola a {0}".format(self.Saludos))
Este primer ejemplo, tenemos una clase con un par de funciones, en la primer función vemos dos parámetros de __init__()
, una donde no necesita de mayor interacción y el segundo donde se asigna la palabra "todos" a una variable llamada Nombre. Define a Saludos como el valor de Nombre mas un signo de exclamación.
Instanciemos nuestra clase con un simple comando:
>>> Mi_Instancia = Mi_Clase()
>>> Mi_Instancia.Di_Hola
Hola a todos!
Como veras, aqui se muestra el mensaje predeterminado con tan solo invocar la instancia. Ahora insertaremos una modificación que no esta pre-asignada en la función.
>>> Mi_Instancia = Mi_Clase(“Amy”)
Hola a Amy!
Ahora cumple con el parametro especial de Amy el cual insertamos en la clase. Así que podemos que la clase puede interactuar con la información que se le pase.
Para mayor información y ejemplos sobre este tópico se puede revisar este video:
Buena suerte.
Dirección de Bitcoins: 1Ddm2TTRTmJZCnaLWb2sybmfaaf4AkfoXH
Firma digital: H1xqro3NAJrON7m8ajCahy4gN8D4icvGIUjoJoFmEJR1CmE9nQ3qP93o7v2s9fkJnww9e74d2Z9VCDGLp7oDOAs=
About me:
Steemer, crypto fan, like to listen to 90s hip hop, and loves to chat about Linux Python and Free software. Runs a local Tech club in sunny Cancun, and enjoys hoping on planes and landing somewhere else.