Хотя исходный ответ полностью отвечает на вопрос, просто добавляя немного связанной информации. Поведение для одиночной звездочки происходит от PEP-3102
. Цитирование связанного раздела:
The second syntactical change is to allow the argument name to
be omitted for a varargs argument. The meaning of this is to
allow for keyword-only arguments for functions that would not
otherwise take a varargs argument:
def compare(a, b, *, key=None):
...
В простом английском языке это означает, что для передачи значения для ключа вам необходимо явно передать его как key="value"
.