-
- Главное назначение кортежей - передавать параметры функциям.
- При задании кортежей требуется в конце ставить запятую.
- Одно из основных принципов Python - лучше писать явные определения, чем полагаться на неявное поведение.
Но при передаче параметров функции запятую в конце не ставят. Почему? -
Из четырёх предпосылок вашего вопроса три не соответствуют действительности (два первых пункта списка и про запятую в конце параметров функции). Соответственно, вопрос теряет смысл.
Расскажите подробно, что привело вас к таким наблюдениям.
-
1. Нет, их назначение хранение неизменяемых значений. Распаковка и запаковка значений просто синтаксический сахар.
2. Нет, только если в кортеже 1 элемент чтобы не перепутать.
3. Да.
А в чем смысл?Но при передаче параметров функции запятую в конце не ставят. Почему? -
Ой, поспешил с выводами. Сильно извиняюсь.
А первый пункт - дословная цитата из этой книжки. -
Вообще, синтаксис объявления кортежей действительно странноват, но функции тут точно не при чём. Параллель с перлом прослеживается, конечно, но это чисто внешнее сходство.
-
А вообще, завершающая запятая имеет очень простое практическое назначение. Если перечисляемые значения располагаются в столбик:
my_tuple = ( 'item1', 'item2', 'item3', )... то наличие запятых во всех строках позволяет добавлять новые строки, удалять существующие и менять их местами, не заботясь об этих запятых. Если бы её там не было, надо было бы каждый раз следить за тем, чтобы у всех элементов она была, а у последнего не было.
Точно то же самое работает и при вызове функций с большим числом длинных параметров:
func( param1 = 'value1', param2 = 'value2', param3 = 'value3', ) -
Это требование отсутствия запятой в конце, кстати, очень бесит в JavaScript-e
-
Ave, запятая :-)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.



