Запутывающее двойное использование нотации 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?