Métodos
Parte de la sección Object Oriented Programming del Journey de Python de Coddy — lección 5 de 64.
Los métodos son funciones que pertenecen a una clase. Definen los comportamientos o acciones que los objetos pueden realizar.
Aquí hay un ejemplo de una clase con métodos:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultCrea un objeto calculadora:
my_calc = Calculator()Llama a un método que no necesita parámetros:
my_calc.greet()Llamar a métodos con parámetros:
sum_result = my_calc.add(5, 3)
print(sum_result)Llama a un método que imprime y devuelve un valor:
product = my_calc.multiply(4, 7)Resultado:
Hello! I'm a calculator.
8
4 × 7 = 28Los métodos pueden:
- Recibir parámetros como
add(self, a, b) - Devolver valores como
return a + b - Imprimir salida directamente como
print("Hello!") - Realizar tanto la impresión como el retorno
Punto clave: Los métodos definen lo que sus objetos pueden hacer. Incluya siempre self como el primer parámetro, pero no lo pase al llamar al método.
Desafío
FácilEn este desafío, implementarás un sistema bancario. Crearás una clase BankAccount en un archivo y la usarás en otro, demostrando cómo organizar tu código para una mejor mantenibilidad.
Necesitas trabajar con dos archivos:
- bank_account.py: Donde definirás tu clase
BankAccount - driver.py: Donde importarás la clase, crearás una cuenta y realizarás transacciones
Crea una clase BankAccount en bank_account.py con:
- Un atributo de clase
bank_nameestablecido en "Python National Bank" - Un método
depositque toma una cantidad y la suma al saldo de la cuenta - Un método
withdrawque toma una cantidad y la resta del saldo - Un método
get_balanceque devuelve el saldo actual
Luego en driver.py, importa tu clase BankAccount, crea una cuenta, deposita $100, retira $30 e imprime el saldo con el formato: f"Current balance: ${my_account.get_balance()}"
Hoja de referencia
Los métodos son funciones que pertenecen a una clase y definen lo que los objetos pueden hacer.
Define métodos en una clase:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultCrea un objeto y llama a los métodos:
my_calc = Calculator()
my_calc.greet()
sum_result = my_calc.add(5, 3)
product = my_calc.multiply(4, 7)Los métodos pueden:
- Tomar parámetros:
add(self, a, b) - Devolver valores:
return a + b - Imprimir salida:
print("Hello!") - Hacer ambas cosas: imprimir y devolver
Punto clave: Incluye siempre self como el primer parámetro en las definiciones de los métodos, pero no lo pases al llamar al método.
Pruébalo tú mismo
from bank_account import BankAccount
# Crea una cuenta y prueba tus métodos
my_account = BankAccount()
my_account.balance = 0 # Saldo inicial
# TODO: Realizar transacciones
# (Tu código aquí)
# TODO: Imprimir el saldo final
# (Tu código aquí)Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Object Oriented Programming
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancarias