En Python, una función y un método pueden parecer similares, ya que ambos ejecutan código y pueden recibir argumentos, pero hay diferencias clave en dónde y cómo se utilizan.
Una función en Python es un bloque de código reutilizable que se define con def
y se puede llamar en cualquier parte del código.
✅ No está ligada a una clase u objeto.
✅ Se puede llamar de forma independiente.
✅ Puede recibir argumentos y devolver valores.
def suma(a, b):
return a + b
resultado = suma(5, 3)
print(resultado) # Salida: 8
Un método es una función que está asociada a un objeto y se define dentro de una clase.
✅ Siempre está dentro de una clase.
✅ Recibe el parámetro self
para acceder a los atributos del objeto.
✅ Se llama a través de una instancia (objeto) de la clase.
class Calculadora:
def suma(self, a, b):
return a + b
calc = Calculadora() # Crear un objeto de la clase
resultado = calc.suma(5, 3)
print(resultado) # Salida: 8
Característica | Función | Método |
---|---|---|
Definición |
Se define con def fuera de clases
|
Se define con def dentro de una clase
|
Asociación | No pertenece a un objeto | Pertenece a un objeto (instancia de una clase) |
Llamado |
Se llama directamente nombre_funcion()
|
Se llama a través de un objeto objeto.metodo()
|
Uso de self
|
No lo usa |
Usa self para acceder a atributos de la clase
|
# Función normal
def saludar(nombre):
return f"Hola, {nombre}"
print(saludar("Carlos")) # Salida: Hola, Carlos
# Método dentro de una clase
class Persona:
def __init__(self, nombre):
self.nombre = nombre
def saludar(self): # Método accede a `self.nombre`
return f"Hola, {self.nombre}"
p = Persona("Carlos")
print(p.saludar()) # Salida: Hola, Carlos
Jorge García
Fullstack developer