Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich feststellen, ob eine Python-Variable eine Funktion darstellt?
So ermitteln Sie, ob eine Variable eine Funktion in Python darstellt
In Python kann es nützlich sein, zu überprüfen, ob eine Variable auf a zeigt Funktion. Zunächst könnte man über die Verwendung von isinstance(x, function) nachdenken, aber Python löst einen NameError für die undefinierte Funktionsklasse aus.
Aufrufbare Objekte und hasattr
Um festzustellen, ob a Variable ist eine Funktion, Python bietet callable() an. Für Python 2.x und Python 3.2 bietet diese Methode die Funktionalität, nach aufrufbaren Objekten zu suchen. Alternativ kann man für Python 3.x vor 3.2 hasattr(obj, '__call__') verwenden, um zu prüfen, ob das Objekt ein __call__-Attribut besitzt, das für aufrufbare Objekte charakteristisch ist.
Vorbehalte beitypes.FunctionType und inspect.isfunction
Obwohl Ansätze vorgeschlagen wurden, die „types.FunctionTypes“ oder „inspect.isfunction“ verwenden, weisen diese Methoden Einschränkungen auf. Sie geben False für Nicht-Python-Funktionen zurück. In C implementierte integrierte Funktionen bestehen diese Prüfung nicht, obwohl sie aufrufbar sind:
<code class="python">>>> isinstance(open, types.FunctionType) False >>> callable(open) True</code>
Daher sollte die Überprüfung der aufrufbaren Natur eines Objekts die explizite Überprüfung seiner Aufruffähigkeit und nicht seiner Konformität umfassen zu einer bestimmten Klassendefinition.
Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob eine Python-Variable eine Funktion darstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!