Callables de Python: conceptos básicos y secretos |  de Marcin Kozak |  octubre de 2023

PROGRAMACIÓN EN PITÓN

Descubra lo poderosos que pueden ser los invocables de Python.

10 minutos de lectura

hace 14 horas

Python tiene muchos invocables.
En Python, hay muchos invocables para elegir. Foto por Pavan Trikutam en desempaquetar

En los lenguajes de programación, los objetos invocables suelen estar asociados con funciones, y por una buena razón. Las funciones son quizás los mejores ejemplos de objetos invocables, pero no son los únicos. En Python, hay muchos otros tipos invocables, que pueden resultar increíblemente útiles y potentes. También puedes crear tus propios objetos invocables. Este artículo trata sobre ambos.

un invocable es un objeto que se puede llamar usando un par de paréntesis, como por ejemplo a continuación, donde usamos la función incorporada sum():

>>> sum([1, 1, 1])
3

Una llamada a un invocable, dependiendo de su definición, puede ser

  • sin ningún argumento, como en no_args_callable()
  • o una serie de argumentos posicionales y/o de palabras clave, como en args_callable(arg1, arg2), args_callable(arg1, arg2=value2) o args_callable(arg1=value1, arg2=value2)

Arriba, describí un invocable como un sustantivo. La palabra invocablesin embargo, también se usa como adjetivo, es decir siendo un invocable. Por lo tanto, un objeto invocable es lo mismo que un objeto invocable.

Python tiene una función incorporada, callable(), que comprueba si un objeto es invocable o, en otras palabras, si es invocable. Considere los siguientes ejemplos de invocables reales:

>>> callable(lambda x: x + 1)
True
>>> callable(print)
True
>>> def foo(): ...
>>> callable(foo)
True

Los siguientes objetos no son invocables:

>>> callable(None)
False
>>> callable(10)
False
>>> callable("hello")
False

Los ejemplos positivos anteriores se referían a funciones, que es lo que la mayoría de la gente asocia con los invocables. Sin embargo, de hecho, todas las clases de Python se pueden llamar. Si conoce los conceptos básicos de la programación orientada a objetos en Python, sabrá que para crear una instancia de una clase, debe hacer lo siguiente:¹

>>> class Empty: ...

Esto se parece exactamente a una llamada, y lo es, y es por eso que las clases de Python son invocables.

Este código muestra que el Empty La clase es invocable, pero la verdad es que todas las clases de Python son invocables. Sin embargo, en Python…