Fonction intégrée Python callable()
De la documentation Python 3
Retourne True si l'objet argument semble appelable, False sinon. Si cela retourne True, il est toujours possible qu'un appel échoue, mais si c'est False, appeler object échouera toujours. Notez que les classes sont appelables (appeler une classe retourne une nouvelle instance) ; les instances sont appelables si leur classe possède une méthode __call__().
Introduction
En Python, la fonction callable() est une fonction intégrée qui peut être utilisée pour déterminer si un objet est appelable, c’est-à-dire s’il peut être invoqué comme une fonction.
Elle retourne True si l’objet qui lui est passé est appelable et False sinon. Par exemple, une fonction, une méthode, une classe, une fonction lambda et un générateur sont tous des objets appelables en Python.
Voici un exemple de la façon dont vous pouvez utiliser la fonction callable() :
def my_function():
pass
class MyClass:
def __call__(self):
pass
x = 5
y = my_function
z = MyClass()
a = lambda: None
print(callable(x))
print(callable(y))
print(callable(z))
print(callable(a))
False
True
True
True
Dans l’exemple ci-dessus, my_function est une fonction et elle est appelable, MyClass est une classe et elle est également appelable car elle possède une méthode __call__, z est une instance de la classe MyClass et elle est également appelable car elle possède une méthode __call__ et a est une fonction lambda qui est appelable.
La fonction callable() peut être utile dans les situations où vous devez déterminer si un objet peut être invoqué comme une fonction, par exemple lorsque vous travaillez avec des rappels (callbacks) ou d’autres types de pointeurs de fonction.