Funciones, Clases y Objetos
Funciones
Divide y vencerás
Funciones
Grupo de sentencias dentro de un programa que forman un bloque (un subprograma) que realiza un número determinado de operaciones sobre un conjunto de argumentos dado y devuelve un "solo valor" o una tupla.-
Cada vez que se llama a la función, se transfiere el control al bloque de sentencias definidas por esa función.
Después que las sentencias han sido ejecutadas, el control vuelve a la sentencia en que fue llamada la función.-
Funciones
La invocación de una función es de la forma:
nombre (argumento1, argumento2,....)
donde nombre, que es el nombre de la función, es un identificador válido y es donde vuelve el resultado; y cada argumento puede ser cualquier variable válida, constante o expresión.-
Funciones
Una definición de función tiene la forma:
def nombre (declaración de parámetros):
sentencias
return valor #opcional
El orden de la lista de parámetros es el orden de correspondencia de dichos parámetros con la lista de argumentos de la llamada. Por lo tanto el número de parámetros y de argumentos debe ser el mismo.
Argumentos por defecto
Una función puede tener argumentos opcionales con valor por defecto de la forma:
def nombre (mensaje, intentos=4, mensajeError='Intentar de nuevo!'): sentencias return valor #opcional
Se pueden definir valores por defecto para que la función sea llamada de formas diferentes:
nombre ("hola")
nombre("casa", 2)
nombre(texto, 1, "Muy bien!")
nombre("hola", mensajeError="Todo mal")
Ejemplo
Escriba una función que devuelva el área de un círculo dado su radio.
Recuerde que para calcular el area, la formula es Π * r2
Solución
def area_circulo (radio_circulo):
PI = 3.14
area = PI*(radio_circulo^2)
return area
# Algoritmo principal:
radio = input("Escribe el radio")
area = area_circulo(radioprint(area)
Ejercicios
Escribe una función llamada ConversionMoneda (…) que permita convertir una cantidad de dinero dada en dolares, pesos chilenos o euros a Pesos Argentinos. Estas son las equivalencias aproximadas:
- EUR (euro): 11 ARS
- USD (dólar): 8.02 ARS
- CLP (peso chileno): 0.0145 ARS
Material de lectura
http://www.monografias.com/trabajos-pdf4/algoritmos-curso/algoritmos-curso.pdf (Unidad 2.3.3)
http://www.frro.utn.edu.ar/repositorio/catedras/sistemas/1_anio/algoritmo_estructura_datos/SORRIBAS.pdf (Unidad 5)
http://dis.unal.edu.co/~programacion/book/modulo4.pdf
https://docs.python.org/3/tutorial/controlflow.html#defining-functions
Clases de Objetos
OBJETOS
- Los objetos son/representan cosas
- Los objetos pueden ser simples o complejos
- Los objetos pueden ser reales o imaginarios
Ejemplos
ATRIBUTOS
- Valores o características de los objetos
- Permiten definir el estado del objeto u otras cualidades
EJEMPLO DEL AUTO:
Velocidad
Aceleración
Cantidad de combustible
Marca
Color
Potencia
Velocidad máxima
Tipo de Combustible
MÉTODOS (U OPERACIONES)
- Son las acciones que puede realizar un objeto
- Los métodos pueden devolver un valor al acabar su
ejecución
EJEMPLO DEL AUTO
- Arrancar motor
- Parar motor
- Acelerar
- Frenar
- Girar a la derecha (grados)
- Girar a la izquierda (grados)
- Cambiar marcha (nueva marcha)
CLASES
- Representan un tipo particular de objetos
- Objetos con características y comportamiento similar
- Categorías de objetos
- Cada clase tiene asociado un código (definición de la clase), que determina:
- Los atributos que tienen los objetos de la clase
- Los métodos que pueden ejecutar los objetos de la clase y cómo lo hacen
- Programar orientado a objetos consiste en escribir código de clases de objetos
EJEMPLO DE DEFINICIÓN DE CLASE AUTO
class Auto:
marca
vel_max = 500
potencia
tipo_combustible
cant_combustible = 0
def arrancar(self):
# Código para que arranque el auto
return 'Arrancamos'
def obtener_cant_combustible(self):
# Código para que arranque el auto
return self.cant_combustible
EJEMPLO DE CREACIÓN Y MANIPULACIÓN DE UN OBJETO DE LA CLASE AUTO
miAuto = Auto() # Creación
miAuto.marca = "Ferrari" # Asignación de atributo
miAuto.potencia = 1000 # Asignación de otro atributo
miAuto.arrancar() # Llamando a un método
velocidad_maxima = miAuto.vel_max # obtención de un atributo
print(miAuto.obtener_cant_combustible()) # obtención de un valor
# generado por un método
MÉTODO ESPECÍFICO DE CREACIÓN
class Auto:
marca
vel_max = 500
potencia
tipo_combustible
cant_combustible = 0
def __init__(marca, vel_max, potencia):
self.marca = marca
self.vel_max = vel_max
self.potencia = potencia
def arrancar(self):
# Código para que arranque el auto
return 'Arrancamos'
def obtener_cant_combustible(self):
# Código para que arranque el auto
return self.cant_combustible
Herencia
Una Clase puede "heredar" atributos y métodos de otra clase
Por ej: un auto puede ser un subgrupo de la clase "Transporte"
Ejemplo de herencia
class Vehiculo:
marca
vel_max = 500
potencia
tipo_combustible
def arrancar(self):
# Código para que arranque el auto
return 'Arrancamos'
class Auto(Vehiculo):
cant_combustible = 0
def arrancar(self):
# Código para que arranque el auto
return 'Arrancamos'
EJERCICIOS
Cree una clase matemática para realizar las operaciones de suma, resta, división y multiplicación. Llame a esas 4 operaciones desde su función principal
Diseñe una clase para trabajar con círculos. En su programa principal cree un círculo, asígnele un radio de 12, y obtenga su diámetro y su superficie
DOCUMENTACIÓN COMPLEMENTARIA
https://docs.python.org/3/tutorial/classes.html
http://www.nebrija.es/~abustind/Informatica/MetodologiaII/Introduccion.pdf
http://es.wikipedia.org/wiki/Clase_%28inform%C3%A1tica%29
http://es.wikipedia.org/wiki/Objeto_%28programaci%C3%B3n%29
https://www.fdi.ucm.es/profesor/jpavon/poo/1.1.Objetos%20y%20Clases.pdf
Python - Funciones, Clases y Objetos
By Guillermo Nuñez
Python - Funciones, Clases y Objetos
- 1,525