Saltar a contenido

Métodos

¿Que es un método?

Un método es una función especial asociada a un tipo de dato. Por ejemplo, la función print() no está asociada a un tipo particular de dato, pero la función upper(), que devuelve un texto convertido en mayúsculas, solo se puede ejecutar con datos tipo str.

Veamos como funciona:

>>> texto = "Feliz Año"
>>> mayusculas = texto.upper()
>>> mayusculas
   'FELIZ AÑO'

A este tipo de operaciones, asociadas a un objeto, se les llama "métodos". Se escriben anteponiendo el objeto, y un punto entre el mismo y el nombre del método:

mayusculas = texto.upper()

en lugar de:

mayusculas = uper(texto)

Comprobamos la diferencia entre invocar una función y un método:

>>> texto = "Feliz Año"
>>> len(texto)
    9

>>> texto.upper()
    'FELIZ AÑO'

¿Por que len() es una función y upper() un método? Esto se debe a que len() puede usarse con otros tipos, en particular con colecciones de varios elementos, que veremos más adelante. La función len() devuelve el número de elementos. Por el contrario, todo método está asociado a un tipo concreto de objeto.

Un ejemplo

Volvamos a nuestro ejemplo de la sumadora. El usuario puede introducir un número con decimales:

Sumadora.py
1
2
3
4
5
numero1 = input("Número 1: ")
numero2 = input("Número 2: ")
numero1 = float(numero1)
numero2 = float(numero2)
print(f"Suma = {n1+n2}")

Pero se supone que va a utilizar el punto decimal. ¿Que pasa si utiliza la coma?

Número 1: 1234,56

Antes de hacer la conversión a float, podemos reemplazar las comas por puntos con la ayuda del método replace():

Sumadora.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
numero1 = input("Número 1: ")
numero2 = input("Número 2: ")

numero1 = numero1.replace( "," , "." )
numero2 = numero2.replace( "," , "." )

n1 = float(numero1)
n2 = float(numero2)

print(f"Suma = {n1+n2}")

El método replace() está asociado a una cadena de texto, que será transformada generando un nuevo texto (las cadenas son inmutables). Se le pasan dos cadenas como argumento, el texto a reemplazar (la coma) y el valor de sustitución (el punto).