Función callable() de Python

La función callable() en Python es una función incorporada que se utiliza para verificar si un objeto puede ser llamado, es decir, si puede ser utilizado como una función. La función callable() devuelve True si el objeto puede ser llamado y False en caso contrario. Aquí hay una lección detallada sobre la función callable()

Página de referencia: resume la firma y el uso de un método concreto. El valor está en el patrón: qué recibe, qué devuelve y en qué situación lo usarías.

Copia el ejemplo al editor, cámbiale los argumentos y comprueba la salida.


Sintaxis de la Función callable() de Python

Ejemplo

    callable(object)
  
Abrir en editor

Donde object es el objeto que se quiere verificar si es callable o no.


Ejemplo de uso de la Función callable() de Python

Ejemplo

    def mi_funcion():
    print("Hola, soy una función")

class MiClase:
    def __init__(self):
        pass

# Verificando si un objeto es callable
print(callable(mi_funcion))  # True, ya que es una función
print(callable(MiClase))     # True, ya que una clase es callable (se puede usar para crear objetos)
print(callable(42))          # False, ya que un entero no es callable
  
Abrir en editor

En este ejemplo, hemos definido una función llamada mi_funcion y una clase llamada MiClase . Luego, utilizamos la función callable() para verificar si son objetos callable. La función mi_funcion y la clase MiClase se consideran callable porque se pueden utilizar como funciones o constructores de objetos. En cambio, el número entero 42 no es callable.


Casos comunes de uso

Verificar si una función existe antes de llamarla: Puedes utilizar callable() para verificar si una función existe antes de intentar llamarla. Esto es útil cuando trabajas con módulos o bibliotecas que pueden proporcionar diferentes funciones opcionalmente.

Ejemplo

    if callable(alguna_funcion):
    alguna_funcion()
else:
    print("La función no existe.")

  

Comprobar si un objeto es callable antes de invocarlo: En algunos casos, puedes recibir un objeto que podría ser una función o un objeto con un método __call__ . Para evitar errores, puedes usar callable() para verificar si se puede llamar antes de hacerlo.

Ejemplo

    def saludar(nombre):
    return f"Hola, {nombre}"

print(saludar("Elena"))
  

Validar objetos que actúan como funciones o clases: Puedes usar callable() para validar objetos que se utilizan como funciones o constructores. Esto es especialmente útil cuando trabajas con código dinámico o con la entrada del usuario.

Ejemplo

    callable(object)
  

En resumen, la función callable() es útil para verificar si un objeto puede ser tratado como una función. Te permite realizar una comprobación antes de intentar llamar a un objeto y, por lo tanto, evita errores de tiempo de ejecución.

Practica Función callable() de Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Comprobar si es callable()

Usa callable() para distinguir funciones de otros objetos.

Ejemplo

    def saludar():
    return "hola"

print(callable(saludar))
print(callable(42))
print(callable("Elena"))
  
Abrir en editor

Ejercicio: Donde

Donde object es el objeto que se quiere verificar si es callable o no.

Ejemplo

    def mi_funcion():
    print("Hola, soy una función")

class MiClase:
    def __init__(self):
        pass

# Verificando si un objeto es callable
print(callable(mi_funcion))  # True, ya que es una función
print(callable(MiClase))     # True, ya que una clase es callable (se puede usar para crear objetos)
print(callable(42))          # False, ya que un entero no es callable
  
Abrir en editor

Ejercicio: Condicional if

Comprobar si un objeto es callable antes de invocarlo: En algunos casos, puedes recibir un objeto que podría ser una función o un objeto con un método __.

Ejemplo

    if callable(alguna_funcion):
    alguna_funcion()
else:
    print("La función no existe.")
  
Abrir en editor