Обычный способ работы с необязательными аргументами списка следующий:
def func(list_of_vals = None):
if list_of_vals is None:
list_of_vals = []
...
Интересно, есть ли в следующей (более короткой) версии какие-либо подводные камни? почему никто этого не делает? считается ли оно более непонятным?
list_of_vals = list_of_vals or []
Подробнее здесь: https://stackoverflow.com/questions/403 ... -in-python