Python para todos: Diferencia entre método y función

Paloma Recuero de los Santos    13 mayo, 2020

Cuando damos nuestros primeros pasos en Python, nos encontramos con dos conceptos muy similares que nos pueden llevar a confusión: funciones y métodos. En este post, intentaremos aclarar esta duda de forma muy sencilla.

Funciones en Python

Como en otros lenguajes de programación, una función no es más que una porción o bloque de código reutilizable que se encarga de realizar una determinada tarea.

Resulta muy cómodo trabajar con funciones, porque no es necesario reescribir ese código cada vez que nos enfrentamos a dicha tarea. Tan solo, llamar a la función.

“Built-in” functions

En Python hay funciones ya creadas (built-in functions), que pueden requerir o no parámetros, como por ejemplo, la función help(), que ofrece la ayuda del sistema sobre determinado comando, la función abs(), que devuelve el valor absoluto de un número etc…

Figura 1: ejemplo de uso de la función help()
Figura 1: ejemplo de uso de la función help()
Figura 2: ejemplo de uso de la función abs()
Figura 2: ejemplo de uso de la función abs()

Crear funciones en Python

Si no existe ya la función que necesitamos, resulta muy sencillo crearla en Python. Primero la declaramos con def (nombre función), y luego definimos su contenido (código indentado dentro de la función).

Por ejemplo, podemos crear una función que sume dos números. Después, hacemos una llamada a la función, facilitándole los valores de los dos parámetros:

Figura 3: ejemplo de definición de la función sumar()
Figura 3: ejemplo de definición de la función sumar()

Hasta aquí, todo muy claro. Pasamos a introducir el segundo concepto. Veremos que un método, es algo parecido a una función, una porción de código que realiza determinada tarea, pero no es exactamente lo mismo.

Métodos en Python

Python es un lenguaje multiparadigma, que soporta programación orientada a objetos (POO), siendo las clases y los objetos sus principales bloques de desarrollo. Las clases son los modelos sobre los cuáles se construirán nuestros objetos, mientras que los objetos son instancias de esa clase.

Por ejemplo, vamos a crear la clase “Persona”, con dos atributos, “nombre” y “edad”. A continuación, creamos un objeto de esa clase: Pablo, 30 años.

Figura 4: ejemplo de definición de una clase y un objeto
Figura 4: ejemplo de definición de una clase y un objeto

Los métodos son acciones o funciones que puede realizar un objeto. Al igual que Python ofrece una serie de funciones “built-in”, también pone a nuestra disposición un conjunto de métodos ya creados. Estos métodos dependen del tipo de objeto con el que estemos trabajando.

Los objetos en Python pueden ser de distintos tipos:

  • cadena de caracteres (string)
  • booleanos (booleans)
  • números enteros (integer)
  • números decimales (float)
  • listas (list)

Por ejemplo, para los objetos tipo cadena de caracteres, tenemos métodos como :

  • capitalize(), que convierte en mayúscula la primera letra de la cadena
  • index(), que busca determinado carácter en la cadena y devuelve su posición
  • split(), que divide la cadena según el separador que indiquemos y la convierte en un lista
  • title(), que convierte el primer carácter de cada palabra en mayúsculas
  • etc

También hay métodos ya creados para otro tipo de objetos, como listas, diccionarios, tuplas, sets o incluso ficheros. Si no nos sirve ninguno para nuestro objetivo, siempre podemos crearlo nosotros mismos, como ocurre con las funciones.

Para acceder a los métodos y propiedades de un objeto, Python utiliza una sintaxis muy simple: el nombre del objeto, seguido de punto y la propiedad o método al cuál se desea acceder.

Por ejemplo, vamos a probar los métodos title() y count() sobre el string “primavera”:

Figura 5: ejemplo de uso de métodos de string
Figura 5: ejemplo de uso de métodos de string

Métodos vs funciones

¿Cuál es entonces la diferencia entre métodos y funciones?. La principal diferencia es que un método es parte de una clase, es decir, es parte de la funcionalidad que le damos a un objeto. Por tanto, siempre va a estar asociado a un objeto. Sin embargo, las funciones en Python, están definidas por si mismas y no pertenecen a ninguna clase.

Al ser intrínsecos al objeto en sí, cada objeto tiene sus propios métodos. Incluso aunque se llamen igual, pueden tener un significado distinto. Por ejemplo, el método index está disponible para los objetos string y list. Sobre una cadena de caracteres, da el índice de la letra en esa palabra, sobre una lista, da la posición de un elemento en una lista

Para mantenerte al día con LUCA visita nuestra página web,  suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *