Fonction Python callable()

Python3 内置函数Fonctions intégrées de Python3


callable()Est une fonction intégrée de Python utilisée pour vérifier si un objet est appelable.

En Python, les fonctions, les méthodes, les classes, etc., sont tous des objets appelables.callable()Il peut nous aider à vérifier si un objet peut être appelé avant de l'appeler, évitant ainsi les erreurs d'exécution.

Définition du mot: callable 意为"可调用的",表示对象是否可以像函数一样被调用。


Syntaxe de base et paramètres

Format de syntaxe

callable(object)

Description du paramètre

  • Paramètre object:
    • Type : Tout objet
    • Description : L'objet à vérifier.

Description de la fonction

  • Valeur de retour: Renvoie une valeur booléenneTrueouFalse。
  • Remarque: Renvoyer True ne signifie pas que l'appel réussira forcément, cela signifie simplement que l'objet est appelable.

Exemples

Exemple 1 : Vérifier divers objets

Exemple

# Fonction
def my_func():
    pass

print(callable(my_func))  # Sortie : True

# Méthode
class MyClass:
    def my_method(self):
        pass

obj = MyClass()
print(callable(obj.my_method))  # Sortie : True

# Classe (une classe peut être appelée pour créer des instances)
print(callable(MyClass))  # Sortie : True

# Fonction intégrée
print(callable(len))   # Sortie : True
print(callable(print))  # Sortie : True

# Chaîne de caractères (non appelable)
print(callable("hello"))  # Sortie : False

# Nombre (non appelable)
print(callable(123))  # Sortie : False

# Expression lambda
my_lambda = lambda x: x * 2
print(callable(my_lambda))  # Sortie : True

Sortie attendue :

True
True
True
True
True
False
False
True

Analyse du code :

  1. Les fonctions, les méthodes, les classes et les expressions lambda sont toutes appelables.
  2. Les types de base tels que les chaînes de caractères et les nombres ne sont pas appelables.

Exemple 2 : Application pratique

Exemple

# Appeler une fonction en toute sécurité
def safe_call(obj, *args, **kwargs):
    if callable(obj):
        return obj(*args, **kwargs)
    else:
        return f"{obj} is not callable"

# Test
def greet(name):
    return f"Bonjour, {name} !"

print(safe_call(greet, "Tom"))  # Sortie : Hello, Tom!
print(safe_call("not a function"))  # Sortie : not a function not callable

# Utilisation dans la conception d'API
class EventHandler:
    def __init__(self):
        self.handlers = {}

    def register(self, event, handler):
        if not callable(handler):
            raise TypeError("handler doit être appelable")
        self.handlers[event] = handler

    def trigger(self, event, *args):
        if event in self.handlers:
            return self.handlers[event](*args)

handler = EventHandler()
handler.register("click", lambda: "Gérer le clic")
print(handler.trigger("click"))  # Sortie : Gérer le clic

# L'enregistrement d'un objet non appelable lèvera une erreur
# handler.register("error", "not callable") # Lève TypeError

Sortie attendue :

Hello, Tom!
not a function 不可调用
处理点击

callable()Il est très utile lorsque vous devez appeler dynamiquement des fonctions ou vérifier des fonctions de rappel.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions