invocable() en Python

En general, un invocable es algo que puede ser invocado. Este método incorporado en Python verifica y devuelve True si el objeto pasado parece ser invocable, pero puede que no lo sea, de lo contrario, False.
Sintaxis:

callable(object)

El método callable() toma solo un argumento, un objeto y devuelve uno de los dos valores:

  • devuelve True, si el objeto parece ser invocable.
  • devuelve False, si el objeto no es invocable.

Nota: puede haber algunos casos en los que callable() devuelve verdadero, pero la llamada al objeto falla. Pero si un caso devuelve False, el objeto de llamada nunca tendrá éxito.

Caso: cuando el objeto es invocable

# Python program to illustrate 
# callable()
# a test function
def Geek():
    return 5
  
# an object is created of Geek()
let = Geek
print(callable(let))
  
# a test variable
num = 5 * 5
print(callable(num))

Producción:

True
False

Explicación:

  • Aquí, vemos en el primer caso cuando se pasa un objeto en el método callable(), devuelve True. Es así porque let es un objeto de la función invocable Geek (que puede no serlo en todos los casos).
  • En el segundo caso, num no es en absoluto un objeto invocable, por lo que el resultado es Falso.

El método callable() integrado comprueba si el argumento es alguno de los dos:

  • Una instancia de una clase con un método __call__ .
  • Es de un tipo que tiene un que indica capacidad de llamada, como en funciones, métodos, etc. o tiene un miembro tp_call (estructura c) no nulo

Ejemplo:

# Python program to illustrate 
# callable()
class Geek:
    def __call__(self):
        print('Hello GeeksforGeeks')
  
# Suggests that the Geek class is callable
print(callable(Geek))
  
# This proves that class is callable
GeekObject = Geek()
GeekObject()

Producción:

True
Hello GeeksforGeeks

Explicación: dado que el primer caso devuelve e imprime True, sugiere que la clase Geek puede llamarse. Después de esto, podemos llamar al método __call__ y es accesible, lo que demuestra que la clase es invocable.

Caso: cuando el objeto NO es invocable

Veamos qué sucede en este ejemplo:

# Python program to illustrate 
# callable()
class Geek:
  def testFunc(self):
    print('Hello GeeksforGeeks')
  
# Suggests that the Geek class is callable
print(callable(Geek))
  
GeekObject = Geek()
# The object will be created but 
# returns an error on calling
GeekObject()

Producción:

True

Explicación: el método callable() devuelve True, lo que sugiere que se puede llamar a la clase Geek, pero la instancia de Geek no se puede llamar() y devuelve un error de tiempo de ejecución:

Traceback (most recent call last):
  File "/home/3979dc83032f2d29befe45b6ee6001a4.py", line 10, in 
    GeekObject()
TypeError: 'Geek' object is not callable

Este artículo es una contribución de Chinmoy Lenka . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *