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

Propiedades y métodos Funciones y lógica en Python

En programación, especialmente con Python, manejamos datos de diferentes formas. Una de ellas es a través de objetos, los cuales contienen tanto datos como funciones especiales llamadas métodos.

En esta lección, aprenderás qué son los atributos y métodos, cómo se usan en Python y cómo afectan a los datos.


Atributos y Métodos

🧑 Para entender estos conceptos, pensemos en una persona.

Una persona tiene características como su nombre y edad (esto sería equivalente a los atributos) y puede realizar acciones como hablar o caminar (esto sería equivalente a los métodos).

Los atributos son simplemente variables que almacenan datos dentro de un objeto. Cada objeto tiene su propio conjunto de atributos.
Los métodosson funciones que están asociadas con un objeto. Se usan para modificar o interactuar con los datos del objeto.

Un ejemplo con una cadena de texto en Python:

name = "Python"  # name es un objeto de tipo cadena (str)

# Método upper() convierte el texto en mayúsculas
print(name.upper())  # => "PYTHON"

En este caso, "Python" es un objeto de la clase str, y el método .upper() actúa sobre ese objeto para devolver una versión en mayúsculas.

Upper

Objetos en Python

En Python, todo es un objeto: números, cadenas, listas, etc. Normalmente, estamos acostumbrados a usar operadores y funciones estándar para manipular datos:

# Usando operadores
resultado = 1 + 3  # 4

# Usando funciones estándar
nombre = "Códica"
longitud = len(nombre)  # 6

Sin embargo, en la programación orientada a objetos, los datos y las funciones que los manipulan se agrupan dentro de un solo objeto. Esto le permite a un objeto realizar acciones sobre sí mismo usando sus propios métodos.

Ejemplo con Cadenas como Objetos

Las cadenas de texto (str) en Python son objetos y tienen métodos incorporados:

nombre = "Códica"

# Convertir a mayúsculas
nombre_mayusculas = nombre.upper()
print(nombre_mayusculas)  # => "CÓDICA"

También podemos llamar directamente al método en una cadena sin necesidad de una variable:

print("python".upper())  # => "PYTHON"

Otros métodos útiles para cadenas incluyen:

nombre = "Python"

# Encontrar la posición de un carácter
print(nombre.find("t"))  # => 2

# Convertir a minúsculas
print(nombre.lower())  # => "python"

# Reemplazar parte del texto
print(nombre.replace("on", "off"))  # => "Pythoff"

Métodos en Otros Tipos de Datos

Como hemos mencionado, casi todo en Python es un objeto, incluyendo los números enteros.

x = -5
print(abs(x))  # => 5

Internamente, abs(x) en realidad llama al método especial __abs__() de x:

print(x.__abs__())  # => 5

¿Por qué se usan funciones como abs() en lugar de llamar directamente al método?

Esto se debe a una decisión de diseño en Python. Se buscaba que operaciones matemáticas como abs(x) o len(x) fueran fáciles de entender y similares a expresiones matemáticas tradicionales.

Así es como funciona la función len():

longitud = len("Códica")  # Internamente llama a "Códica".__len__()
print(longitud)  # => 6

Atributos de Objetos

Además de métodos, los objetos pueden tener atributos. Por ejemplo, todas las funciones en Python tienen un atributo llamado __doc__, que muestra su documentación:

print(len.__doc__)  # => "Return the number of items in a container."

Los atributos funcionan como variables, solo que se acceden con un punto (.) después del objeto.


Métodos Como Parte de Expresiones

Como los métodos devuelven valores, podemos combinarlos con otras expresiones:

name = "Diego"
saludo = "¡Hola, " + name.upper() + "!"
print(saludo)  # => "¡Hola, DIEGO!"

También pueden utilizarse como argumentos en funciones:

name = "Juan"
print(name.lower())  # => "juan"

num1 = 5
num2 = 30

# bit_length() devuelve la cantidad de bits necesarios para representar un número en binario
print(num1.bit_length() + num2.bit_length())  # => 8

Resumen

  • Atributos son variables dentro de un objeto.
  • Métodos son funciones asociadas a objetos que permiten interactuar con ellos.
  • Los métodos se llaman usando objeto.metodo(), como "Python".upper().
  • Python usa funciones como len(objeto) en lugar de los métodos internos como objeto.__len__().
  • Los métodos pueden combinarse con otras expresiones para realizar operaciones más complejas.

Ahora que conoces estos conceptos, podrás usarlos para mejorar tu código y aprovechar al máximo las ventajas de la programación orientada a objetos en Python.

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