Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # Hasta ahora vimos Programación Procedimental: se estructura un programa
- # como una receta, nos proporciona un conjunto de pasos en forma de funciones
- # y bloques de código, que se completan secuencialmente para realizar una
- # tarea
- # el paradigma de Programación orientada a objetos (POO) data de los años '70
- # Nos proporciona una forma de estructurar programas creando objetos
- # con determinadas propiedades y capacidades que modelen los objetos
- # de la vida real.
- # POO modela entidades del mundo real como objetos de software con datos
- # asociados a ellos y QUE PUEDEN REALIZAR CIERTAS FUNCIONES.
- # Por ejemplo, un objeto podrìa representar a una persona con propiedades
- # tales como nombre, edad, género, etc y comportamientos como hablar
- # caminar, dormir, estudiar, etc.
- # CLASES, MÉTODOS, INSTANCIAS, ATRIBUTOS
- # las clases se utilizan para crear estructuras de datos definidas por el
- # usuario. Las clases definen FUNCIONES llamadas METODOS, que son los comportamientos
- # la CLASE es un proyecto, una ABSTRACCION, un molde para crear objetos.
- # una INSTANCIA es un OBJETO EN PARTICULAR moldeado por la clase que
- # contiene datos reales y representa a un ente de la vida real. Las
- # propiedades de los objetos de denominan ATRIBUTOS
- # NOTA: las funciones condoble guion bajo se denominan dunder o mágicos
- '''
- class Perro:
- """Primer ejemplo de clase, con el único método __init__"""
- # Atributos de clase (tienen el mismo valor para todas las instancias)
- especie = "Canis Familiaris"
- def __init__(self, nombre, edad):
- """Funciòn para "construir" (o inicializar) el objeto"""
- self.nombre = nombre
- self.edad = edad
- # Creo dos instancias de la clase Perro
- sultan = Perro("sultan", 9)
- firulai = Perro("firulai", 4)
- # para ver el nombre del objeto sultan
- print(sultan.nombre)
- # imprimo la edad de firulai
- print(firulai.edad)
- # accedo al atributo de clase
- print(sultan.especie)
- print(firulai.especie)
- # Los objetos SON MUTABLES POR DEFAULT
- sultan.edad = 7
- print(sultan.edad)
- # reescribimos la clase Perrocon métodos de instancias
- class Perro:
- """Primer ejemplo de clase, con el único método __init__"""
- # Atributos de clase (tienen el mismo valor para todas las instancias)
- especie = "Canis Familiaris"
- def __init__(self, nombre, edad):
- """Funciòn para "construir" (o inicializar) el objeto"""
- self.nombre = nombre
- self.edad = edad
- def descripcion(self):
- """Crea un método de instancia"""
- return f"{self.nombre} tiene {self.edad} años de edad"
- def ladra(self, sonido):
- """Crea otro método de instancia"""
- self.sonido = sonido
- return f"{self.nombre} dijo {self.sonido}"
- # creo una instancia
- tronco = Perro("Tronco", 4)
- # hago que el perro ladre
- print(tronco.ladra("WOOF WOOF"))
- '''
- # Mejoremos la descripción con __str__
- class Perro:
- """Primer ejemplo de clase, con el único método __init__"""
- # Atributos de clase (tienen el mismo valor para todas las instancias)
- especie = "Canis Familiaris"
- def __init__(self, nombre, edad):
- """Funciòn para "construir" (o inicializar) el objeto"""
- self.nombre = nombre
- self.edad = edad
- def __str__(self):
- """Crea un método de instancia"""
- return f"{self.nombre} tiene {self.edad} años de edad"
- def ladra(self, sonido):
- """Crea otro método de instancia"""
- self.sonido = sonido
- return f"{self.nombre} dijo {self.sonido}"
- # creo una instancia
- tronco = Perro("Tronco", 4)
- # imprimo la descripcion de Tronco
- print(tronco)
- # Ej: crear una clase Auto con dos atributos de instancia color y
- # kilometraje. Instanciar dos autos, uno azul con 20000 kms y otro rojo
- # con 30000kms. Imprimir luego sus colores y kilometrajes
- class Auto:
- def __init__(self, color, kilometraje):
- self.color = color
- self.kilometraje = kilometraje
- auto_azul = Auto("azul", 20_000)
- # otra forma de crear una instancia
- auto_rojo = Auto(color="rojo", kilometraje=30_000)
- for auto in (auto_azul, auto_rojo):
- print(f"El auto {auto.color} tiene {auto.kilometraje} kms de uso")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement