Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- """
- POO
- La programación orientada a objetos es un PARADIGMA de programación que
- proporciona un medio para ESTRUCTURAR programas para que las propiedades
- y los comportamientos se agrupen en objetos individuales
- Un objeto podría representar a una persona con propiedades como nombre,
- edad, domicilio y comportamientos como caminar, correr, hablar.
- La POO modela entidades del mundo real como objetos de software que
- tiene algunos datos asociados con ellos y pueden realizar ciertas funciones
- La programación procedimental es otro paradigma de programación que
- ESTRUCTURA un programa como una receta en el sentido que proporciona un
- conjunto de pasos, en forma de funciones y bloques de código, que fluyen
- secuencialmente para completar una tarea.
- CLASES E INSTANCIAS
- Las clases se utilizan para crear estructuras. Las clases definen funciones
- llamadas METODOS que identifican los comportamientos.Los ATRIBUTOS se identifican
- con las propiedades indivuduales
- Una clase es una abstracción, el nombre de un conjunto. La instancia es un
- objeto particular:
- Ejemplo:
- CLASE Ser humano
- Una clase hija es una clase derivada de otra, que hereda sus METODOS Y
- ATRIBUTOS
- EJ. clase futbolista
- Una instancia de la clase futbolista: Lionel Messi
- # ej de codificacion de una clase Perro
- class Perro:
- # Atributo de clase:
- especie = "Canis familiaris"
- def __init__(self, nombre, edad):
- '''Crea los atributos de cada instancia'''
- self.nombre = nombre
- self.edad = edad
- # Metodos:
- def __str__(self):
- return f"{self.nombre} tiene {self.edad} años de edad"
- def ladra(self, sonido):
- return f"{self.nombre} dijo {sonido}"
- def __add__(self1, self2):
- return f"{self1.nombre} y {self2.nombre} han tenido cachorritos"
- # Creo dos instancias
- sultan = Perro("Sultán",4)
- firulai = Perro("Firulai",3)
- # imprimo atributos
- print(f"Edad de firulai: {firulai.edad}")
- print(f"Nombre de sultán: {sultan.nombre}")
- # cambio la especie de sultan
- sultan.especie = "Marca Perro"
- print(f"Especie de sultan: {sultan.especie}")
- print(f"Especie de firulai: {firulai.especie}")
- print(sultan)
- print(sultan.ladra("Guau Guau"))
- print(sultan + firulai)
- # HERENCIA
- class Perro:
- # Atributo de clase:
- especie = "Canis familiaris"
- def __init__(self, nombre, edad):
- '''Crea los atributos de cada instancia'''
- self.nombre = nombre
- self.edad = edad
- # Metodos:
- def __str__(self):
- return f"{self.nombre} tiene {self.edad} años de edad"
- def ladra(self, sonido):
- return f"{self.nombre} grita {sonido}"
- def __add__(self1, self2):
- return f"{self1.nombre} y {self2.nombre} han tenido cachorritos"
- class Bulldog(Perro):
- def ladra(self, sonido="Arf Arf"):
- return f"{self.nombre} dijo {sonido}"
- class Chihuahua(Perro):
- def ladra(self, sonido="grr grr"):
- return super().ladra(sonido)
- cachito = Chihuahua("Cachito",3)
- oscar = Bulldog("Oscar",7)
- print(cachito.ladra())
- print(oscar.ladra())
- """
- # polimorfismo
- # nos permite invocar un metodo que arroja diferentes resultados segun el objeto
- class Gato():
- def __init__(self, nombre):
- self.nombre = nombre
- def hablar(self):
- return "MIAU"
- class Perro():
- def __init__(self, nombre):
- self.nombre = nombre
- def hablar(self):
- return "GUAU"
- def escuchar_mascota(mascota):
- return mascota.hablar()
- cacho = Perro("Cacho")
- fufu = Gato("Fufu")
- print(f"Un perro dice {escuchar_mascota(cacho)}")
- print(f"Un gato dice {escuchar_mascota(fufu)}")
- # POLIMORFISMO CON HERENCIA
- class Animal():
- def hablar(self):
- pass
- class Gato(Animal):
- def __init__(self, nombre):
- self.nombre = nombre
- def hablar(self):
- return "MIAU"
- class Perro(Animal):
- def __init__(self, nombre):
- self.nombre = nombre
- def hablar(self):
- return "GUAU"
- cacho = Perro("Cacho")
- fufu = Gato("Fufu")
- print(f"Un perro dice {cacho.hablar()}")
- print(f"Un gato dice {fufu.hablar()}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement