В следующих кодах есть два места, где используется звездочка (*):
Звездочка в функции:
def function(*asterisk):
print(1, type(asterisk))
Звездочка в выражениях:
a, *b = (1, 2, 3)
print(2, type(b))
a, *b = [1, 2, 3]
print(3, type(b))
Я знаю значение звездочки в функциях и как она работает.
Мой вопрос заключается в том, почему звездочка в печати № 1 имеет тип tuple , тогда как в печати № 2 и 3 - список тип?
Почему python интерпретирует параметр * функции как кортеж независимо от типа аргумента и интерпретирует * переменную как список независимо от типа присвоенных чисел в выражениях?
В конце концов, это * разные операторы?!