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

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