Verwenden von Standardargumenten des Formulars x={}
führt normalerweise nicht den beabsichtigten Zweck in Python, da Standardargumente gebunden sind, wenn eine Funktion definiert ist, nicht aufgerufen.Was ist die pythonischste Art, ein leeres Wörterbuch als Standardargument zu verwenden?
Die Konvention scheint zu sein, veränderbare Objekte als Standardargumente mit x=None
zu setzen und dann zu überprüfen, um beim Aufruf der Funktion die richtigen Voreinstellungen zuzuweisen.
Also, wenn ich x
in ein Wörterbuch werfen mag, die standardmäßig leer ist, ich etwas wie die folgenden verwenden würde:
def f(x=None):
x = dict(x) if x is not None else {}
Da jedoch dict
jede iterable kann nehmen, kann ich auch diese schreiben prägnantere Version:
def f(x=()):
x = dict(x)
Welche davon ist der "richtige" Ansatz?