Ich habe eine Funktion in Python, die über die Attribute von dir (obj) iteriert, und ich möchte überprüfen, ob eines der enthaltenen Objekte eine Funktion, eine Methode, eine eingebaute Funktion usw. ist könnte callable() dafür verwenden, aber ich möchte keine Klassen einbeziehen. Das Beste, was ich bisher gefunden habe, ist:Gibt es eine allgemeine Möglichkeit, Python einzuchecken, wenn ein Objekt ein Funktionstyp ist?
isinstance(obj, (types.BuiltinFunctionType, types.FunctionType, types.MethodType))
Gibt es eine zukunftssichere Möglichkeit, diese Überprüfung zu tun?
Edit: Ich habe vorhin falsch gesprochen, als ich sagte: "Normalerweise könnte man callable() dafür verwenden, aber ich möchte keine Klassen disqualifizieren." Ich eigentlich do möchte Klassen disqualifizieren. Ich möchte nur Funktionen entsprechen, keine Klassen.
isroutine() gibt für Teil- teilnahmen Falsch zurück. hasattr (obj, '__call__') gibt True für Partialtöne zurück. – Jim