Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Cadena de métodos 🔗 Funciones y lógica en Python

En esta lección, aprenderemos cómo encadenar métodos en Python y analizaremos algunos errores comunes que cometen los principiantes.

Cada vez que trabajamos con texto (cadenas de caracteres), podemos aplicar diferentes métodos uno tras otro. Pero, ¿cómo funciona exactamente esto?

Vamos a desglosarlo paso a paso.

Chain


¿Cómo funciona el encadenamiento de métodos?

Mira el siguiente código:

nombre = 'Miguel'
print(nombre.upper().lower())  # => 'miguel'

Aquí estamos aplicando dos métodos seguidos:

  1. upper() convierte la cadena nombre a mayúsculas.
  2. Luego, sobre ese resultado, lower() convierte todo nuevamente a minúsculas.

Resultado: 'miguel'.

Esto nos permite escribir código más compacto. Pero, si no estamos seguros de cómo funciona, siempre podemos descomponerlo en pasos intermedios.


Descomponiendo el proceso

Si hacemos lo mismo paso a paso, se verá así:

nombre = 'Miguel'
nombre_superior = nombre.upper()  # 'MIGUEL'
print(nombre_superior.lower())  # 'miguel'

Como ves, ambos enfoques son equivalentes. La diferencia es que en el primer caso usamos encadenamiento de métodos y en el segundo, usamos variables intermedias.

💡 Regla clave: Python evalúa estos métodos de izquierda a derecha.

Otro ejemplo práctico

Intentemos este código:

nombre = 'Miguel'
print(nombre.replace('Mi', 'Ki').lower())  # => ?

Analicémoslo paso a paso:

  1. replace('Mi', 'Ki') reemplaza 'Mi' por 'Ki', generando 'Kiguel'.
  2. lower() convierte toda la cadena a minúsculas, dando como resultado 'kiguel'.

Errores frecuentes

Es común que los principiantes olviden llamar un método correctamente.

Observa este error:

nombre = 'Miguel'
# ¡Este código causará un error!
print(nombre.upper.lower())

¿Qué está mal?

❌ No colocamos los paréntesis () en upper, por lo que Python no ejecuta el método. En su lugar, solo intentamos acceder a la función sin usarla, lo que generará un error.


Encadenar métodos con slices

Podemos combinar el encadenamiento de métodos con rebanadas (slices).

Analicemos este código:

nombre = 'Miguel'
print(nombre[1:5].upper().find('I'))

¿Qué hace esto?

  1. nombre[1:5] toma los caracteres del índice 1 al 4'igue'
  2. upper() convierte 'igue' en 'IGUE'
  3. find('I') busca la letra 'I' en la cadena 'IGUE', devolviendo su posición: 0

Entonces, el resultado de la impresión será 0.


¿Por qué no podemos anidar funciones de la misma manera?

A diferencia del encadenamiento de métodos, las funciones suelen anidarse dentro de otras de esta forma:

resultado = round(abs(-5.7))
print(resultado)  # 6

Aquí:

  1. abs(-5.7) obtiene el valor absoluto: 5.7
  2. round(5.7) redondea a 6

Si intentáramos encadenar funciones con un . como en los métodos, obtendríamos un error. En otros lenguajes, esto se resuelve con funciones avanzadas como la composición o el operador de tubería (pipeline).


Resumen

  • El encadenamiento de métodos permite combinar múltiples operaciones sobre una cadena en una sola línea.
  • Las operaciones ocurren de izquierda a derecha y devuelven un nuevo resultado sobre el cual se aplica el siguiente método.
  • Para pruebas y depuración, es útil dividir los pasos en variables intermedias.
  • Las funciones no pueden encadenarse de la misma manera que los métodos, y requieren un enfoque diferente.

Prueba estos ejemplos en tu entorno de Python y experimenta con diferentes combinaciones. ¡Así aprenderás mejor!

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY