3_programacion orientada a objetos
Sirve intérprete online de python 3, la consola de Python instalada(q se llama REPL) o Google Colab
Cuidado con la indentación
Ejemplo 1:
class Robot:
# Atributo de Clase (Común a todos)
especie = "Autómata Inteligente"
class Robot: Es el plano de la fábrica. Le estamos diciendo a Python: "Voy a crear un nuevo tipo de objeto llamado Robot".
especie = "Autómata Inteligente": Es una regla general. Todos los robots que salgan de este molde van a pertenecer a esta especie. No importa cómo los bautices, todos llevan esta característica de fábrica compartida.
def __init__(self, nombre, modelo, color):
# Atributos de Instancia (Únicos)
self.nombre = nombre
self.modelo = modelo
self.color = color
self.bateria = 100
Cuando le das a "Crear nuevo personaje", aparece una ventana para rellenar datos. Eso es el __init__ (el constructor).
self: Significa "este mismo" o "el propio". Cuando creas al robot,selfes la etiqueta que le ponemos a ese robot en particular para no confundirlo con los demás.Los datos únicos (
nombre,modelo,color): Son las opciones que tú eliges al crearlo. A uno lo puedes llamar "Robín", modelo "X-5", de color "rosa pastel", y a otro "Bip", modelo "Z-9", de color "azul".self.bateria = 100: Es un valor por defecto. No te pedimos que lo escribas al crearlo; por regla general, todos empiezan con la batería al 100%.
def saludar(self):
return f"¡Hola! Soy {self.nombre}"
Un objeto no solo tiene datos (como su color o nombre), sino también acciones que puede realizar.
saludares una función dentro del robot (método). Cuando le dices a tu robot que salude, él mira su propio nombre (self.nombre) y te dice: "¡Hola! Soy Robín".
En resumen:
La clase (
Robot) es el creador de personajes.Los atributos (
nombre,color,batería) son las características de tu personaje.Los métodos (
saludar) son lo que tu personaje sabe hacer.
Hasta ahora solo hemos escrito el molde (la fábrica de robots), pero todavía no le hemos dicho a la fábrica que fabrique ninguno ni que los ponga a hablar. Es como tener la receta de un pastel pero sin meter los ingredientes en el horno todavía.
Para que haga algo, necesitamos dar el siguiente paso: crear los objetos (las instancias) y llamar a sus acciones.
¿Qué acabamos de hacer?
robot1 = Robot(...): Aquí es donde "compramos" un robot del molde y le pasamos sus datos reales (nombre,modelo,color).print(...): Le decimos a Python que imprima en la pantalla lo que devuelven las funciones o los datos de nuestros robots.return f"¡Hola! Soy {self.nombre}"
f le avisa a Python: "Oye, dentro de este texto vas a encontrar llaves {} con variables adentro, por favor reemplázalas por su valor real".Sin la f (Forma + antigua ):
Tendrías que sumar textos y variables con un signo + así:
return "¡Hola! Soy " + self.nombre
Los atributos de clase (como especie) o los atributos de instancia (como color o batería)
no son obligatorios en el sentido de que Python te obligue a ponerlos.
Tú decides qué características quieres que tenga tu molde.
- Se llama __init__ porque viene de la palabra "inicializar"
- (o initialize en inglés).
¡Prueba a copiarlo y ejecutarlo en Colab para ver cómo cobra vida!