- Atributos y Métodos
- Objetos en Python
- Métodos en Otros Tipos de Datos
- Métodos Como Parte de Expresiones
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).
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.
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 comoobjeto.__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.