Запутывающее двойное использование нотации Python (в качестве аргумента функции или определения функции)

Я немного смущен. Позволять'Создайте функцию с именем x. Я знаю, что, поставив * перед y, это означает, что мы можем добавить столько аргументов, сколько захотим.

def x(*y):
    return y

Тем не мение.

Случай 1:

>>> x(1, 2)
(1, 2)

Случай 2: Позволять's передают список [1,2] со звездочкой перед ним:

>>> x(*[1,2])
(1, 2)

Кажется, что единственная звездочка имеет два использования:

Для разрешения нескольких аргументов в функции - по существу, помещая их в списокЕсли сделано дважды, чтобыраспадаются" список на отдельные пункты

Почему это? Почему можноЯ делаю что-то вроде: * a * b?

Ответы на вопрос(2)

Ваш ответ на вопрос