Potrzebuję funkcji z domyślnymi argumentami, które muszą być ustawione w czasie działania funkcji (takie jak puste listy, wartości pochodne od innych argumentów lub danych pobranych z bazy danych) i obecnie używam następujący wzór, aby sobie z tym poradzić:Dynamiczne domyślne argumenty w funkcjach Pythona
def foo(bar, baz=None):
baz = baz if baz else blar()
# Stuff
Gdzie blar()
daje odpowiednią wartość domyślną baz
co może zmienić w trakcie realizacji. Jednak linia baz = baz if baz else ...
uderza mnie jako nieelegancką. Czy ktokolwiek inny ma lepszą metodę unikania jednorazowego wiązania domyślnych argumentów funkcji? Małe, wieloplatformowe biblioteki instalowane przez pip to akceptowalne zamienniki.
Staromodny sposób pozwala uniknąć niepotrzebnego przypisania, gdy 'baz' nie jest' Brak'. – chepner