„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich feststellen, ob eine Python-Variable eine Funktion darstellt?

Wie kann ich feststellen, ob eine Python-Variable eine Funktion darstellt?

Veröffentlicht am 12.11.2024
Durchsuche:755

How can I Determine if a Python Variable Represents a Function?

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.

Callable Objects 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 bei Typen.FunctionType und inspect.isfunction

Es wurden zwar Ansätze vorgeschlagen, die „types.FunctionTypes“ oder „inspect.isfunction“ verwenden, diese Methoden weisen jedoch 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:

>>> isinstance(open, types.FunctionType)
False
>>> callable(open)
True

Daher sollte die Überprüfung der aufrufbaren Natur eines Objekts die explizite Überprüfung seiner Aufruffähigkeit umfassen, nicht seiner Konformität mit einer bestimmten Klassendefinition.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729252937 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3