* Bekomme die Argumente und Werte eines Funktionsaufrufs als dict
import inspect
def test(ersterparameter, fisch, krustentier=None):
# inspect.currentframe() gibt ein Frame-Objekt zurück was auf den derzeitigen Frame verweist (auf den Funktionsaufruf)
# inspect.getargvalues gibt ein namedtuple zurück, was args (alle Parameternamen), keywords (Keyword-Parameter), positionelle Parameter und locals (alle lokal bekannten Variablen als dict, das sind mehr als die Parameter)
argvalues = inspect.getargvalues(inspect.currentframe())
argument_value_dict = {}
# Nehme Liste aller bekannten Parameter und hole aus den locals ihren Wert
for argument in argvalues.args:
argument_value_dict.update({argument:argvalues.locals[argument]})
print(argument_value_dict)
Ruft man obiges aus bekommt man:
test(5, fisch="Dorade")
{'ersterparameter': 5, 'fisch': 'Dorade', 'krustentier': None}