Python callable()-Funktion

Python3 内置函数Python3 integrierte Funktionen


callable()Ist eine in Python integrierte Funktion, mit der überprüft wird, ob ein Objekt aufrufbar ist.

In Python sind Funktionen, Methoden, Klassen usw. alle aufrufbare Objekte.callable()Es kann uns helfen, vor dem Aufruf zu prüfen, ob ein Objekt aufgerufen werden kann, um Laufzeitfehler zu vermeiden.

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


Grundlegende Syntax und Parameter

Syntaxformat

callable(object)

Parameterbeschreibung

  • Parameter object:
    • Typ: Beliebiges Objekt
    • Beschreibung: Das zu prüfende Objekt.

Funktionsbeschreibung

  • Rückgabewert: Gibt einen booleschen Wert zurückTrueoderFalse。
  • Hinweis: Die Rückgabe von True bedeutet nicht, dass der Aufruf definitiv erfolgreich sein wird; es bedeutet nur, dass das Objekt aufrufbar ist.

Beispiele

Beispiel 1: Verschiedene Objekte prüfen

Beispiel

# Funktion
def my_func():
    pass

print(callable(my_func))  # Ausgabe: True

# Methode
class MyClass:
    def my_method(self):
        pass

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

# Klasse (eine Klasse kann aufgerufen werden, um Instanzen zu erstellen)
print(callable(MyClass))  # Ausgabe: True

# Eingebaute Funktion
print(callable(len))   # Ausgabe: True
print(callable(print))  # Ausgabe: True

# String (nicht aufrufbar)
print(callable("hello"))  # Ausgabe: False

# Zahl (nicht aufrufbar)
print(callable(123))  # Ausgabe: False

# Lambda-Ausdruck
my_lambda = lambda x: x * 2
print(callable(my_lambda))  # Ausgabe: True

Erwartete Ausgabe:

True
True
True
True
True
False
False
True

Codeanalyse:

  1. Funktionen, Methoden, Klassen und Lambda-Ausdrücke sind alle aufrufbar.
  2. Basistypen wie Zeichenketten und Zahlen sind nicht aufrufbar.

Beispiel 2: Praktische Anwendung

Beispiel

# Eine Funktion sicher aufrufen
def safe_call(obj, *args, **kwargs):
    if callable(obj):
        return obj(*args, **kwargs)
    else:
        return f"{obj} ist nicht aufrufbar"

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

print(safe_call(greet, "Tom"))  # Ausgabe: Hallo, Tom!
print(safe_call("keine Funktion"))  # Ausgabe: keine Funktion ist nicht aufrufbar

# Verwendung im API-Design
class EventHandler:
    def __init__(self):
        self.handlers = {}

    def register(self, event, handler):
        if not callable(handler):
            raise TypeError("handler muss aufrufbar sein")
        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: "Klick verarbeiten")
print(handler.trigger("click"))  # Ausgabe: Klick verarbeiten

# Das Registrieren eines nicht aufrufbaren Objekts löst einen Fehler aus
# handler.register("error", "not callable") # Löst TypeError aus

Erwartete Ausgabe:

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

callable()Es ist sehr nützlich, wenn Sie Funktionen dynamisch aufrufen oder Callback-Funktionen überprüfen müssen.


Python3 内置函数Python3 integrierte Funktionen


Andere Erweiterungen