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.
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