viernes, 26 de julio de 2024

Python class

  1. class Hombre:
  2. def __init__(self,nombre,apellido,edad):
  3. self.nombre=nombre
  4. self.apellido=apellido
  5. self.edad=edad
  6. self.placer='sexo'
  7. def __str__(self):
  8. return f"{self.nombre} {self.apellido} {self.edad}"
  9.  
  10. h1=Hombre("Jose","Ramos",35)
  11.  
  12. print(f"Mi nombre es {h1.nombre} {h1.apellido}, tengo {h1.edad} de edad")
  13.  
  14.  
  15. print(h1)
-------------

Mi nombre es Jose Ramos, tengo 35 de edad

Jose Ramos  35

Definir clases en Python permite crear objetos que encapsulan datos y funcionalidades relacionadas. Aquí te dejo un ejemplo completo y detallado sobre cómo definir y usar clases en Python.

Ejemplo Básico de una Clase en Python

Supongamos que queremos definir una clase que represente a una persona.

Definición de la Clase

python
class Persona: def __init__(self, nombre, edad): self.nombre = nombre self.edad = edad def saludar(self): return f"Hola, mi nombre es {self.nombre} y tengo {self.edad} años."

Explicación

  • __init__ Method: Este es el constructor de la clase. Es un método especial que se llama cuando se crea una nueva instancia de la clase. Inicializa los atributos nombre y edad.
  • Attributes: self.nombre y self.edad son atributos de instancia. Cada instancia de la clase Persona tendrá sus propios valores para estos atributos.
  • saludar Method: Este es un método regular que retorna un saludo utilizando los atributos de la instancia.

Crear Instancias de la Clase

python
persona1 = Persona("Juan", 30) persona2 = Persona("María", 25) print(persona1.saludar()) # Salida: Hola, mi nombre es Juan y tengo 30 años. print(persona2.saludar()) # Salida: Hola, mi nombre es María y tengo 25 años.

Métodos de Instancia y Atributos

Los métodos de instancia operan sobre una instancia específica de la clase y pueden acceder y modificar los atributos de la instancia.

Ejemplo de Métodos y Atributos

python
class Coche: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo self._velocidad = 0 # Atributo "protegido" (convención) def acelerar(self, incremento): self._velocidad += incremento return f"El coche ha acelerado a {self._velocidad} km/h." def frenar(self, decremento): self._velocidad -= decremento return f"El coche ha desacelerado a {self._velocidad} km/h." def obtener_velocidad(self): return self._velocidad # Crear una instancia de Coche mi_coche = Coche("Toyota", "Corolla") print(mi_coche.acelerar(50)) # Salida: El coche ha acelerado a 50 km/h. print(mi_coche.frenar(20)) # Salida: El coche ha desacelerado a 30 km/h. print(mi_coche.obtener_velocidad()) # Salida: 30

Atributos y Métodos de Clase

Los atributos y métodos de clase son compartidos por todas las instancias de la clase.

Ejemplo

python
class Animal: especie = "Mamífero" # Atributo de clase def __init__(self, nombre): self.nombre = nombre # Atributo de instancia @classmethod def obtener_especie(cls): return cls.especie # Crear instancias de Animal animal1 = Animal("León") animal2 = Animal("Tigre") print(animal1.obtener_especie()) # Salida: Mamífero print(animal2.obtener_especie()) # Salida: Mamífero print(animal1.nombre) # Salida: León print(animal2.nombre) # Salida: Tigre

Herencia

La herencia permite crear una nueva clase que es una extensión de una clase existente.

Ejemplo

python
class Empleado(Persona): # Empleado hereda de Persona def __init__(self, nombre, edad, salario): super().__init__(nombre, edad) # Llamar al constructor de la clase base self.salario = salario def mostrar_salario(self): return f"{self.nombre} tiene un salario de {self.salario} dólares." # Crear una instancia de Empleado empleado1 = Empleado("Carlos", 28, 50000) print(empleado1.saludar()) # Salida: Hola, mi nombre es Carlos y tengo 28 años. print(empleado1.mostrar_salario()) # Salida: Carlos tiene un salario de 50000 dólares.

Explicación

  • Herencia: La clase Empleado hereda de Persona, por lo que Empleado tiene todos los atributos y métodos de Persona.
  • super() Keyword: super() se utiliza para llamar al constructor de la clase base (Persona) desde la clase derivada (Empleado).

Conclusión

Las clases en Python son fundamentales para la programación orientada a objetos (POO). Permiten agrupar datos y comportamiento en entidades coherentes y reutilizables. A través de la definición de atributos y métodos, así como del uso de herencia, las clases pueden representar y manipular datos de manera estructurada y eficiente.

No hay comentarios:

Publicar un comentario