URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 121077
[ Назад ]

Исходное сообщение
"Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом"

Отправлено opennews , 28-Июн-20 09:49 
Гвидо ван Россум (Guido van Rossum) представил на рассмотрение сообществом черновик спецификации для реализации в  языке Python операторов для сопоставления с образцом (match и case).  Следует отметить, что предложения по добавлению операторов сопоставления с образцом уже публиковались в  2001 и 2006 годах (pep-0275, pep-3103), но были отвергнуты в пользу оптимизации конструкции "if ... elif ... else" для составления цепочек сопоставления...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53248


Содержание

Сообщения в этом обсуждении
"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 09:49 
Не прошло и полвека…

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:34 
> но были отвергнуты в пользу оптимизации конструкции "if ... elif ... else" для составления цепочек сопоставления.

Сначала героически отвергли, потом героически ввели... Ну и кто они после этого?!


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 28-Июн-20 11:41 
> Сначала героически отвергли, потом героически ввели...

Они героически отвергли C-style свитч. А героически ввели Scala-style match.

> Ну и кто они после этого?!

Стратеги. Если бы они приняли C-style свитч тогда, а сейчас добавили бы match, то ортогональность фичей языка пошла бы лесом. И окультурить этот лес селективными вырубками не удалось бы из-за backward compatibility.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено uchiya , 28-Июн-20 12:17 
Ну да, а две конструкции по итогу иметь - бог не позволяет.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 28-Июн-20 13:12 
> Ну да, а две конструкции по итогу иметь - бог не позволяет.

Ну да, примерно так и есть.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Анон102010210 , 28-Июн-20 14:21 
1) А зачем засорять язык, если можно не засорять?
2) Бритва оккама
3) Вообще-то у белкового мозга есть лимит возможностей в том, сколько правил можно одновременно соблюдать и эффективно добиваться поставленных целей

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Gogi , 29-Июн-20 15:41 
Категорически неверно. "Засорять" - это когда маловажные перделки и "сахарок" добавляются тоннами - как в C# 9.0; А отдельный свич и матч были бы неплохим разделением: когда прогер использует свич, он чётко знает - это БЫСТРО и используем сплошные константы - компилятор легче генерирует оптимальный код. Если это матч - компилер уже знает, надо долго и нудно сопоставлять. И это хорошо.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Z , 28-Июн-20 17:35 
Python этим то и хорош, что не тащить всякий мусор в виде дублирующих операторов!
Посмотрите что с С++ сотворили, чужие исходники читать трудновато.
Меньше операторов это главное что отличает современные языки вроде Go, Rust в результате читаемость чужих исходников резко повышается!

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено rshadow , 28-Июн-20 22:22 
> дублирующих операторов

На вскидку: elif, for/while

> Меньше операторов

Нет. Не операторов меньше. В go например есть и if и switch.
Уменьшают базовую бибилиотеку: никто не тащит в стандарт например парсинг cvs и т.д. Не потому что не могут, а потому что и сторонние разработчики хорошо справляются. Лучше сделать хороший пакетный менеджер, чем поддерживать зоопарк фичей.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено rshadow , 28-Июн-20 22:25 
Нафига две-то? Скриптовый язык, по определению, имеет "умные" операторы. А не "тупо" транслирует в машинный код.
Сделали бы сразу switch, а потом наворачивали на него поддержку таплов, регэкспы и прочее и прочее

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 13:10 
> ортогональность фичей языка пошла бы лесом

она и так пошла лесом, то, что делалось ифом, сейчас ещё и мачем.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 28-Июн-20 13:22 
>> ортогональность фичей языка пошла бы лесом
> она и так пошла лесом, то, что делалось ифом, сейчас ещё и
> мачем.

Да. Но match удобнее на некоторых случаях. Это во-первых сокращение записи (попробуй вон тот пример с Point переписать на if/elif), во-вторых, match -- это специфический синтаксис, который легко детектируется глазом, после чего ты понимаешь что происходит дальше. Цепочка if/elif может развиваться как угодно, match x -- это как цепочка if/elif по значению x.

Если мы сравниваем switch и if/elif, то это сравнение будет выглядеть примерно так же, как сравнение match и if/elif. Точнее, на качественном уровне так же, а количественно выйдет иначе несколько: меньшее количество юзкейсов для switch, меньше экономия в размере сорца. То есть, switch может быть и имело смысл принять, при отсутствии match'а. Тут вопрос в той количественной планке полезности для новой фичи, которую для себя установили разработчики.

Но иметь в языке и switch, и match -- это совершенно не аргументируемая идея. match может всё то, что может switch, при этом switch будет не длиннее аналогичного match.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 14:18 
> не удалось бы из-за backward compatibility.

Не забываем что разговор о питоне.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 00:22 
Насмешили!
Многоходовочка от Гвидо! Всех переиграл!

Питон это помойка некогерентного синтаксиса с семантикой бейсика.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 00:46 
> Насмешили!

Я рад.

> Многоходовочка от Гвидо! Всех переиграл!

Нет. Многоходовочка -- это когда план был составлен априорно. Здесь же, ситуация иная, switch был отвергнут из общих соображений, а не потому, что кто-то планировал впоследствии добавить match.

> Питон это помойка некогерентного синтаксиса с семантикой бейсика.

Совершенно нерелевантный обсуждению кусок информации. Твоё отношение к python'у никому не интересно.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 01:07 
Секреты интриги расследования. Тонкое стратегическое мышление в развитии скриптов для домохозяек.

Мои бока.

Не знал что у Питона есть секта фанатиков в рунете которые на полном серьезе интересуются "полезной" "политинформацией" о тонкостях решений закулисами так сказать.

Еще и инфантильное тыканье, вы студент? Или Школьник может? Не примите за оскорбление, а то многие на школьника обижаются почему-то. Это нормально ведь, в школе учиться. Только питон там зря преподают. Раньше паскалю учили.

Ну и с чего вы взяли, что можете релевантность чего-либо определить? Ну будь вы хоть Гвидо этим, еще понятна была бы такая напыщенность. Но вот лично вы, никакого отношения к успехам питона не имеете.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 01:39 
> Не знал что у Питона есть секта фанатиков в рунете которые на полном серьезе интересуются "полезной" "политинформацией" о тонкостях решений закулисами так сказать.
> Еще и инфантильное тыканье, вы студент? Или Школьник может? Не примите за оскорбление, а то многие на школьника обижаются почему-то. Это нормально ведь, в школе учиться. Только питон там зря преподают. Раньше паскалю учили.

Я бы встречно предположил, что студент тут ты: искать (и находить!) секретные группы людей интересующихся несуществующей "полезной" "политинформацией" -- это вообще, мне кажется, особенность интеллекта на определённых этапах развития. Многие интеллекты застревают на этой стадии на всю оставшуюся жизнь, но те кто постарше студенческого возраста успели уже набить шишек и научились держать при себе совсем уж безбашенные находки.

Можно я раскрою тебе глаза? Я до сегодняшнего дня не знал о том, что в python кто-то когда-то пытался протолкнуть switch. И о попытках протолкнуть match не слышал. И, если честно, если бы меня спросил кто вчера, есть ли в python'е switch или match я бы затруднился ответить, потому как python'ом я пользуюсь весьма эпизодически и поэтому не помню деталей. Но мнение по обсуждаемому вопросу я, тем не менее, имею: я его составил по результатам прочтения данной новости и диагонального листания некоторых ссылок из новости и комментов. Тут есть ссылки на обсуждение предложения внести switch -- и если ты глянешь туда, там нет никакой "политинформации", там чисто техническое обсуждение. Обсуждение match'а тоже не содержит в себе "политинформации". То есть "политинформация" является чистым и незамутнённым продуктом твоей фантазии, от которого ты бодро перепрыгиваешь к выводу о существовании несуществующей группы людей. Даже не замечая того, что вся эта твоя психическая деятельность протекает в выдуманной тобою Вселенной, существующей только в твоей голове.

> Ну и с чего вы взяли, что можете релевантность чего-либо определить?

Ой, ну это же легко. Ты перечитай тред. О чём он? Тред о принятии match и о предшествующем непринятии switch. И тут ты такой красивый пришёл трясти своим личным мнением о python'е.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 09:38 
Эк вас прёт.
Извините, нет абсолютно времени в подобной мути разбираться.
А отсутсвие чувства юмора и самокритики конечно беда страшная.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 10:00 
> Эк вас прёт.
> Извините, нет абсолютно времени в подобной мути разбираться.
> А отсутсвие чувства юмора и самокритики конечно беда страшная.

Ну да, давай, демонстрируй нам свою способность уходить в кристаллизованный ad hominem, когда других аргументов придумать не удаётся. Попробуй научиться сливаться в cpaчах без ad hominem: очень полезное умение, особенно для студента.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 30-Июн-20 02:17 
Говорить о себе в третьем лице это клиника.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Atterratio , 29-Июн-20 07:48 
А можно для идиотов объяснить в чём принципиальное отличие? Я по коду особой разницы не вижу.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 08:46 
Они сами не могут объёснить, как 30 лет жили без мачи, а теперь вдруг ввели её себе в голову.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 09:57 
> А можно для идиотов объяснить в чём принципиальное отличие? Я по коду
> особой разницы не вижу.

   def whereis(point):
       match point:
           case Point(0, 0):
               print("Origin")
           case Point(0, y):
               print(f"Y={y}")
           case Point(x, 0):
               print(f"X={x}")
           case Point():
               print("Somewhere else")
           case _:
               print("Not a point")

C-style switch позволяет использовать в качестве переключателей лишь константы примитивных типов. Здесь же используются не константы и не примитивных типов. Здесь используются паттерны. Например, case Point(0,y), под этот паттерн подпадёт любой Point у которого x==0. Но мало того, match создаёт лексический биндинг: он связывает переменную y со значением point.y.

Каждый паттерн здесь (за исключением _), проверяет что point имеет тип Point, плюс какие-то дополнительные условия на значения x и y накладывает. switch так не умеет. if/else/elif позволяет такое сделать, но там получится мешанина вложенных if'ов.

затем:

   match point:
       case Point(x, y) if x == y:
           print(f"Y=X at {x}")
       case Point(x, y):
           print(f"Not on the diagonal")

демонстрируешь ещё одну фишку, доп. условия. Первый case сработает если point имеет тип Point и point.x == point.y. Обрати внимание, тут тоже происходит создание локальных переменных x и y, и они доступны в if'е.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Vkni , 04-Июл-20 23:01 
Да, всего 10 лет осталось - ML в 79м придумали.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 09:54 
Регулярки-то можно будет запихнуть туда? Реальный юзкейс. xD

Но да, не хватало для счастья именно этого. Ну, среди прочего. Эх, ещё бы := в ф-строки пихать разрешили... Или это уже перебор?


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 10:00 
Правда, как сахар для if не очень полезно, наверное. Лучше бы чем-нибудь полезным занимались.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Васька , 28-Июн-20 10:13 
Вполне себе полезно, т.к. подобные конструкции через if выглядят не по питоновски. Одно из немногих за последнее время изменений делающих питон более питоном, остальное в другую сторону, по большей части.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 13:11 
Иногда словарь помогает. Но всё зависит от сравниваемых данных.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 15:35 
> Иногда словарь помогает. Но всё зависит от сравниваемых данных.

По-моему со словарём были проблемы с тормозами и перерасходом памяти. Последнее частично исправлялось различными костылями. Я уже не знаю что такое питоновый питон. Сначала привыкаешь к 1 питону, потом привыкаешь к постоянным изменениям, потом уже шпаришь со всеми новыми фичами -- ведь они стабильно повышают удобство и качество жизни. Решение оставить на плаву 2 питон в течение такого срока было совершенно фатальным, теперь нужно навёрстывать.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Васька , 28-Июн-20 16:27 
Питон это красивый ясночитаемый код, в первую очередь, для тех кому нужно. В этом сила этого языка - писать быстро, читать легко, даже чужое. Остальное либо производное от этого, либо является минусом.
Потому - более по-питоновски, по моему мнению, это все, что угодно в пользу этого факта. Последнее время конструкции языка усложняются и вообще местами напоминают натягивание совы на глобус, мне не сложно, мне непонятно нафига.

Драма перехода на три это как застиранное пятно от кофе на рубашке определенной репутации языка. Никуда оно уже не денется, странно, что вы с ней ещё носитесь.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 17:05 
> Питон это красивый ясночитаемый код, в первую очередь, для тех кому нужно.
> В этом сила этого языка - писать быстро, читать легко, даже
> чужое. Остальное либо производное от этого, либо является минусом.
> Потому - более по-питоновски, по моему мнению, это все, что угодно в
> пользу этого факта. Последнее время конструкции языка усложняются и вообще местами
> напоминают натягивание совы на глобус, мне не сложно, мне непонятно нафига.

Возьмите луа, если вам так хочется. На мой взгляд, чем сложнее и мощнее язык, тем быстрее писать, тем проще воплощать мысли в коде. Питон не теряет в простоте и человекочитаемости от подобных нововведений, только выигрывает. Он не становится менее понятным при этом, в основном он просто позволяет выкинуть лишные некрасивые конструкции и упростить сопровождение кода.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 00:24 
- "Питон это красивый ясночитаемый код"

Прекрати человек анекдот.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено dffdf , 01-Июл-20 07:53 
вопрос решите и обоснуйте решение
4/2(4-2)
а то развелось тут "специалистов по всему" лин

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 18-Июл-20 02:21 
> вопрос решите и обоснуйте решение
> 4/2(4-2)
> а то развелось тут "специалистов по всему" лин

Ответ - синтаксическая ошибка, внезаптные скобки после числа.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 26-Авг-20 16:25 
> вопрос решите и обоснуйте решение
> 4/2(4-2)
> а то развелось тут "специалистов по всему" лин

У вас невалидный ввод. Неожиданные символ "(" после "2"


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Васька , 28-Июн-20 10:27 
Скорей, конечно, надо читать: "предложенные выглядят более по питоновски", так правильно

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Кондратий , 28-Июн-20 15:28 
В каком-нить экзотическом Парсер (Parser3/parser.ru) - конструкция switch - case/default почти 20 лет из коробки, и ооочень широко используется для опциального ветвления, без нее тяжко, пример в топике актуальный.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено vitalif , 29-Июн-20 00:17 
"Добрый день, к вашим услугам питон-разработчик, слонёнок-тестер и мартышка-тимлид" (c)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:05 
>ещё бы := в ф-строки пихать разрешили

ловите наркомана.. надеюсь такие побочные эффекты никогда в язык не пролезут - жаль что в принципе это присваивание просочилось.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:21 
Ну так сейчас их в .format() класть приходится, было бы удобней и менее грязно сразу на месте. А так приходится отказываться от продвинутых эффективных строк. Нет, не жаль, такое присваивание позволяет писать более эффективные однострочники.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:23 
это первый шаг в сторону перла имхо

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Оно , 28-Июн-20 22:55 
Уже есть := конструкция доки читайте

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Sarcastic scutosaurus , 29-Июн-20 18:05 
> Регулярки-то можно будет запихнуть туда? Реальный юзкейс.

Вот так хочешь?


for ($var) {
  /regex1/ ? do_something() :
  /regex2/ ? do_something_other() :
  default_action();
}

Так очень даже запросто. Только гвидобейсик придётся выкинуть…


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Иваня , 28-Июн-20 10:03 
Да блин, в питоне синтаксис итак перегружен, столько всяких конструкций, за один день не разберёшься со всем, а он ещё хочет усложнить 😢

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 10:15 
Могу предложить Brainfuck, там простеиший синтаксис

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено анонимно , 28-Июн-20 13:47 
В брейнфаке плохо реализовано ООП )

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 14:21 
А оно там ваще есть?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено myhand , 28-Июн-20 14:45 
Есть, конечно.  Он же тьюринг-полный.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 16:03 
ООП есть везде, где есть процедуры и данные. Главное, чтобы не развился ООП головного мозга.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено rshadow , 28-Июн-20 22:30 
Чисто теоретически ООП, это набор самоограничений, позволющий осиливать сложность ПО. Если нет классов, то можно их реализовывать например на уровне подключения файлов. Или придумать любой свод правил на том что есть =)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 30-Июн-20 15:43 
А как на одних только процедурах и данных реализовать инкапсуляцию, наследование, полиморфизм?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено draw1 , 28-Июн-20 17:16 
> В брейнфаке плохо реализовано ООП )

По-моему, там просто отличное ООП! ))


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 08:52 
Похоже, изучение ООП надо начинать с ассемблера. Вот тогда в мозгах будет правильный ООП. Как напишет хомячок на асме VMT, так сразу будет знать, что это такое.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Урри , 02-Июл-20 10:44 
Это на и сишечке сделать несложно. Зачем же из пушки по воробьям то стрелять?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 10:36 
_ - не улучшит читаемость кода. Улучшит её default: как например в C#

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 10:42 
Это не по-питоновски. Чем менее понятно, что происходит, тем более питоновской является конструкция.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:07 
Да скоро до башевских реулярок так дойдем.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Sarcastic scutosaurus , 29-Июн-20 18:09 
Опять какое-то школоло вылезло… Нет в баше регулярок. Никаких. И никогда не было.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 19:40 
Господи, откуда вы лезете? А что делает оператор =~ в баше?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Sarcastic scutosaurus , 29-Июн-20 20:26 
OMG, они и это туда запилили? Ладно, был неправ, прошу прощения.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 01:10 
Этот коммент глаголит мудрость.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:11 
дефолт еще хуже, потому что новое ключевое слово. понимаю - в шарпах об этом совсем не парятся, но в питоне стараются сделать еще и красиво(минимализм рулит) надеюсь else будет (для симметрии с try/for/if).

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 15:51 
> в питоне стараются сделать еще и красиво

Субъективщина. Не считаю гвидобейсик "красивым".

> минимализм рулит

Тогда иди в Brainfuck.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 09:40 
>Субъективщина

тут не спорю

мне кажется очевидный факт что чем меньше ключевых слов - тем лучше для языка при одинаковом наборе фичей. это и есть продуманность и согласованность их(фич) друг с другом


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Александр , 28-Июн-20 23:42 
Минимализм - это к Lua. А тут попытка усидеть на двух стульях.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 09:37 
>А тут попытка усидеть на двух стульях.

и надо признать что у них весьма не дурно это получается, судя по всем рейтингам и такой широкой области применимости - наверное даже самой широкой


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 09:44 
Успех питона несвязан с техническими свойствами языка.
Он экономический и политический.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 11:12 
сильное заявление, требующие доказательства. хотел бы узнать более развернуто почему питон по-вашему популярен. да - у питона много недостатков, но остальные языки имеют их еще больше(не говорю за хаскели/эрланги и прочие кложуры, потому как не работал с ними плотно)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноньимъ , 29-Июн-20 15:13 
Хотелось бы.

Что скажите кстати насчёт Лавкрафта? Читали?


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено n00by , 28-Июн-20 11:38 
_ традиционно используется в языках, где петтерн-матчинг имеется изначально.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 13:34 
И очень зря.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено n00by , 28-Июн-20 14:14 
Да... зрят в корень.))

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:44 
В Python даже для for и while есть else, логично использовать его и здесь.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:01 
Гвидо вместо того чтобы повелеть своим диктаторским решением, выставил на рассмотрение? Куда катится этот мир.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Sluggard , 28-Июн-20 11:10 
Он уже не диктатор, и даже из Dropbox ушёл на пенсию. Ты всё проспал.
https://www.opennet.dev/opennews/art.shtml?num=48959
https://www.opennet.dev/opennews/art.shtml?num=51778

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Sw00p aka Jerom , 28-Июн-20 16:10 
В мавзолей ему пора.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено пох. , 28-Июн-20 23:09 
> Гвидо вместо того чтобы повелеть своим диктаторским решением,
> выставил на рассмотрение? Куда катится этот мир.

я надеюсь, ему велят катиться со своим очередным switch - "голым сували и будем сувать, вези еще elifов!"

хотя, попытка с '_' хороша своей полной нечитаемостью. Так что может в этот раз и прокатить.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 29-Июн-20 12:50 
Я так понимаю, что '_' пересекается с распространённой
практикой использования '_' как локальной переменной?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Anonymoustus , 28-Июн-20 11:16 
Есть такие, кто сходили почитать pep-3103? В этих четырёх вариантах синтаксиса новой конструкции вся убогость Пихтона как на ладони. А еще Перл им, понимаешь, не нравится… :-)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено rshadow , 28-Июн-20 22:35 
Perl можно во многом обвинять, но в синтаксисе он топовый. Все таки лингвист создавал.
Конечно если не писать специально "типичные программы на perl".

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:29 
Почему просто switch не добавить? Если оно выглядит как switch, крякает как switch, то это switch.
Назвав конструкцию match, они и провоцируют вопрос, заданный выше, про регулярки.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:40 
Тоже сначала подумал, что наконец-то оператор регулярок сделали... Ан нет, сделали по пи... по питоновски, "никакулюдей", "яойсобенная".

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено n00by , 28-Июн-20 11:41 
Вот настоящий match.


let eq_rat cr =
  match cr with
     ((_,0),(_,0)) ->  true
   | ((_,0),_) ->  false
   | (_,(_,0)) ->  false
   | ((n1,1), (n2,1)) when n1 = n2 -> true
   | ((n1,d1), (n2,d2)) when ((n1 * d2) = (n2 * d1)) -> true
   | _ -> false;;


let char_discriminate c =
  match c with
       'a' | 'e' | 'i' | 'o' | 'u' | 'y'
     | 'A' | 'E' | 'I' | 'O' | 'U' | 'Y'  -> "Vowel"
     | 'a'..'z' | 'A'..'Z' -> "Consonant"
     | '0'..'9' -> "Digit"
     |   _ -> "Other" ;;

https://caml.inria.fr/pub/docs/oreilly-book/html/book-ora016...

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Урри , 28-Июн-20 11:58 
На тридцати языках: https://rosettacode.org/wiki/Pattern_matching

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено n00by , 28-Июн-20 12:30 
> На тридцати языках: https://rosettacode.org/wiki/Pattern_matching

Пример с инстанциацией шаблонов просто шикарен, зря что ли Александреску ушёл в D. :D

Полез в Википедию, был удивлён: в англоязычном варианте https://en.wikipedia.org/wiki/Pattern_matching
среди первых языков, где реализовано сопоставление я образцом (SNOBOL from 1962, Soviet language Refal from 1968 with tree-based pattern matching, SASL from 1976, NPL from 1977, and KRC from 1981)
указан РЕФАЛ, а в русскоязычном про него ничего нет (в РЕФАЛ через сопоставление реализуется вообще всё).


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 11:46 
Крякает он как раз как match, судя по выражению "case Point(x, y) if x == y", такое никакой switch провернуть не сможет.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено n00by , 28-Июн-20 11:49 
> Крякает он как раз как match, судя по выражению "case Point(x, y)
> if x == y", такое никакой switch провернуть не сможет.

Спасибо, проглядел if.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 09:47 
Это вообще синтаксический ад какой-то, честно говоря.
Для такого надо или ИЛИ пихать или не делать такое вообще.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено коржик , 28-Июн-20 13:11 
> Если оно выглядит как switch, крякает как switch, то это switch.

Не совсем.

match это по идее выражение, оно возвращает один из подошедших вариантов,

switch - это как правило стейтмент (поправьте, как правильно говорить), который ничего не возвращает, еще и проваливается сверху-вниз если break не поставить.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Александр , 28-Июн-20 23:50 
Кстати, в каком-то языке я встречал возвращающий switch. Выглядело (условно) это как-то так:
int r = switch (op)
{
case '+': a + b;
case '-': a - b;
case '*': a * b;
case '/': a / b;
};

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено коржик , 29-Июн-20 06:51 
> Кстати, в каком-то языке я встречал возвращающий switch. Выглядело (условно) это как-то
> так:

c#8

public static T RecursiveExample<T>(IEnumerable<T> sequence) =>
    sequence switch
    {
        System.Array { Length : 0}       => default(T),
        System.Array { Length : 1} array => (T)array.GetValue(0),
        System.Array { Length : 2} array => (T)array.GetValue(1),
        System.Array array               => (T)array.GetValue(2),
        IList<T> list                    => list[2],
        IEnumerable<T> seq               => seq.Skip(2).First(),
    };


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 08:56 
ужас какой-то... кто это использует?!

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 10:37 
Прикол же, чисто демонстрационный. В реальности действительно приятная вещь... знакомая, по сути, всем любителям функционального программирования. ;)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено myhand , 28-Июн-20 14:54 
> Почему просто switch не добавить?

Потому что это не switch.  Читайте pep.

> Назвав конструкцию match, они и провоцируют вопрос, заданный выше, про регулярки.

Да, существуют граждане, закомящееся с языком как-то по basic-english словарю и ключевым словам...

Но если делать язык в расчете на подобных, выражусь политкорректно, идиотов - получится язык для идиотов.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 17:00 
Так уже получился.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено corvuscor , 28-Июн-20 11:56 
А мне нравится, очень хорошо читаемая конструкция, я лично за.

Меня лично эти if-elif-else в питоне всегда бесили, предпочитаю вместо них словари, но это тоже адский костыль и не всегда удобнее.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 15:15 
Самый лучший способ улучшить читаемость программ - нигде не использовать питон....

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено YetAnotherOnanym , 28-Июн-20 11:59 
У меня, как и у многих, тоже возник вопрос "А где ты раньше был", но вроде бы штука удобная, м.б. лучше поздно, чем никогда? (Дисклеймер: не питонист ни разу)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Вы забыли заполнить поле Name , 28-Июн-20 15:48 
> У меня, как и у многих, тоже возник вопрос "А где ты раньше был",

Мировоззрение меняется просто. Может он поиспользовал эту конструкцию в других языках и понял, что удобно.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 12:03 
> case Point():

Это выглядит как создание объекта со значением по умолчанию, почему оно должно совпасть с любым другим значением не совсем ясно.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Онаним , 28-Июн-20 15:28 
Это питон. Не ищите нормального синтаксиса там, где его нет.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Вы забыли заполнить поле Name , 28-Июн-20 15:51 
> почему оно должно совпасть с любым другим значением не совсем ясно

Как я понимаю оно совпадает с произвольной точкой (в смысле не с (0, 0), (x, 0) или (0, y)). Любое другое значение - это _.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 19:24 
Вопрос, как я понимаю в том, почему используется синтаксис Point(), а не Point(_, _).

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 19:47 
точно (_,_). Везде в питоне (_,_).

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Вы забыли заполнить поле Name , 30-Июн-20 15:08 
Да, странно. Особенно, учитывая, что конструктор Point требует 2 аргумента.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 13:22 
Может я что то в жизни не понимаю, но ООП для этого вроде и придумали что бы не пихать новый синтаксис, а создавать "новые" комманды на основе классов, для языка.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено нона , 28-Июн-20 13:31 
Определенно не понимаешь, ООП придумали, чтобы книжки таким как ты продавать.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 23:22 
ООП придумали чтобы снизить порог вхождения. Объекты со свойствами и наследованием принять проще, чем непонятные регистры и слабо укладывающиеся в голове математика «функции».

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 30-Июн-20 08:53 
+5. А математики в своей голове хоть что-то уложить - могут?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Вы забыли заполнить поле Name , 28-Июн-20 13:32 
> В отличие от оператора "switch", доступного в языках Си, Java и JavaScript,

JFI для JS уже очень давно висит аналогичное предложение https://github.com/tc39/proposal-pattern-matching


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено ALex_hha , 28-Июн-20 13:48 
> Также вызывают вопросы внутренняя организация, основанная на трансляции новых выражений в байткод, аналогичный используемому для конструкций "if ... elif ... else", что не обеспечит желаемой производительности при обработке очень больших наборов сопоставлений.

думаю, тут дело в первую очередь про удобство, а не производительность. Ибо "if ... elif ... else" ацки неудобная. Очень не хватает switch/case


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 15:59 
> Ибо "if ... elif ... else" ацки неудобная.

30 лет с ифом жили, и тут - бац! - прям озарило...


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Anonim , 29-Июн-20 16:06 
Это тот switch, в котором практически для каждого case нужно рисовать break? Спасибо не надо.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:17 
Сделай switch, в котором не надо рисовать break. Но можно нарисовать fallthrough при необходимости. Ой, нет, так уже другие люди сделали…

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 19:49 
Начнёшь писать программы - поймёшь, почему где-то нужен break, а где-то - нет.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 14:12 
Хочет дотянуть функционал петона до уровня bash?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 12:01 
конечно, а то раньше-то он не был тьюринг полным

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 14:28 
Лучше верни master/slave, идиотизм какой-то потакать 0.01% извращенцев и менять веками устоявшиеся конструкции.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 16:06 
Петончик как модный хайповый язык не может не потакать 0.01% извращенцев. Страдайте.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним84701 , 28-Июн-20 19:53 
> Петончик как модный хайповый язык не может не потакать 0.01% извращенцев. Страдайте.
>>>  предложил включить в Python операторы для сопоставления с
>> менять веками устоявшиеся конструкции.

Анонимы, как истинные анонимы, не могут просто взять и прочитать новость, а не придумывать и оспаривать что-то по ключевым словам заголовка?


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Онаним , 28-Июн-20 15:27 
case 418 оставить, остальное не нужно

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено all_glory_to_the_hypnotoad , 28-Июн-20 16:29 
Эта дичь по читаьельности ощутимо хуже if ..elif .. else. Лучше бы наконкец предложил ввести { } вместо yблюдочных отступов.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 19:40 
Языков со скобками полно на любой вкус, от криворожденных JavaScript и PHP до нормальных. Питон прекрасен отступами.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Александр , 28-Июн-20 23:54 
И ими же жутко не удобен

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 01-Июл-20 14:11 
Может обоснованно ответишь? Или нужно догадаться, чем тебе отступы не угодили?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Anonymoustus , 29-Июн-20 06:13 
> Языков со скобками полно на любой вкус, от криворожденных JavaScript и PHP
> до нормальных. Питон прекрасен отступами.

И поэтому даже у авторов языка возникает четыре (!) варианта написания новой конструкции.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ан959н , 29-Июн-20 08:40 
Котам делать нечего, кроме как бубенчики вылизывать.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 08:35 
Это какой-то цирк, запоминать, кроме синтаксиса, ещё и количество отступов у элементов конструкции... Мы что, черчением занимаемся по ГОСТу?!

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено анонн. , 29-Июн-20 15:07 
> Это какой-то цирк, запоминать, кроме синтаксиса, ещё и количество отступов у элементов конструкции... Мы что, черчением занимаемся по ГОСТу?!
>> Leading whitespace (spaces and tabs) at the beginning of a logical line is used to compute the indentation level of the line, which in turn is used to determine the grouping of statements.

Скорее похоже на цирк опеннетных Знатоков в комментариях.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 29-Июн-20 13:05 
Вот у меня такой вопрос: как интерпретируется ситуация
со смесью spaces/tabs и тем, что табуляция может
быть настроена на разный размер?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено анонн. , 29-Июн-20 15:21 
> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs

https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
> Python 3 disallows mixing the use of tabs and spaces for indentation.

(хотя если очень сильно хочется, то "можно" - некоторые варианты интерпретатором не ловятся)
Цитируя Гвидо "we are all adults".

> и тем, что табуляция может быть настроена на разный размер?

И? Никто не заставляет в обязательном порядке конвертировать табы в spaces.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 29-Июн-20 16:14 
>> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs
> https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces

Ну вот ссылочку вы прислали, а на вопрос не ответили.
Я же не про "как мне жить --- с пробелами или табуляцией".

Как питон разруливает мешанину пробелов и табуляций?


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено анонн. , 29-Июн-20 16:59 
>>> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs
>> https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
> Ну вот ссылочку вы прислали, а на вопрос не ответили.
> Я же не про "как мне жить --- с пробелами или табуляцией".

Какая буква в "disallows" вам не понятна?

> Как питон разруливает мешанину пробелов и табуляций?
>> TabError: inconsistent use of tabs and spaces in indentation


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 30-Июн-20 03:47 
>>>> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs
>>> https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
>> Ну вот ссылочку вы прислали, а на вопрос не ответили.
>> Я же не про "как мне жить --- с пробелами или табуляцией".
> Какая буква в "disallows" вам не понятна?

Все. Позволять/непозволять --- это не питонье дело, а автора.

Питон может на это как-то реагировать. А может не реагировать.
Если он такое увидел, то как он реагирует?

По ссылке написана хрень, IMO: там написано "было бы хорошо, если
бы вы писали свой код хорошо".


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено анонн. , 30-Июн-20 17:29 
>> Какая буква в "disallows" вам не понятна?
> Все. Позволять/непозволять --- это не питонье дело, а автора.

Cинтаксис и семантика в спеках ЯП это семантика и синтаксис именно ЯП, а не размышлизмов очередного комментатора "как оно должно быть на самом деле!".


> Питон может на это как-то реагировать. А может не реагировать.
> Если он такое увидел, то как он реагирует?

Если его перед этим покормить, то скорее всего никак. Если нанести код на мышь или кролика, то слопает с превеликим удовольствием. Даже если код будет на расте или хаскелле.

А ожидаемое поведение интерпретатора языка Python 3 вполне описано:
>> (хотя если очень сильно хочется, то "можно" - некоторые варианты интерпретатором не ловятся)
>> TabError: inconsistent use of tabs and spaces in indentation

Имеющий глаза прочитал бы давно.

> По ссылке написана хрень, IMO: там написано "было бы хорошо, если бы вы писали свой код хорошо".

Хрень написана в комментах, по ссылке краткая выжимка и разъяснение для тех, кто не хочет ковыряться в спеках:

https://docs.python.org/3/reference/lexical_analysis.html
> Indentation is rejected as inconsistent if a source file mixes tabs and spaces in a way that makes the meaning dependent on the worth of a tab in spaces; a TabError is raised in that case.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 02-Июл-20 14:01 
Вот, я вызвал раздражение светлоликих знатоков предмета. А что на самом деле имеем?

- для python2: ну, хрен знает...
- для python3: ругнётся ...
   Но: язык допускает i) spaces ii) tabs (визуально неразличимы!) но не смесь i) и ii);
   а пробелы (и табуляция) как разделитель отались...

Не, ну очень целостный и логичный язык после этого...


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 02-Июл-20 14:58 
> Вот, я вызвал раздражение светлоликих знатоков предмета.

Просто кто-то хотел с умным видом набросить на вентилятор, но получилось "как всегда" - вентилятор в неподходящий момент врубил реверс ...

> А что на самом деле имеем?
>  - для python2: ну, хрен знает...
>>  -t     Issue a warning when a source file mixes tabs and spaces for
>>              indentation in a way that makes it depend on the worth of a tab
>>              expressed in spaces.  Issue an error when the option is given twice.

*facepalm*
>  - для python3: ругнётся ...

*doublefacepalm*

>    Но: язык допускает i) spaces ii) tabs (визуально неразличимы!)
> но не смесь i) и ii);
>    а пробелы (и табуляция) как разделитель отались...

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

> Не, ну очень целостный и логичный язык после этого...

Когда не знаешь матчасти, но очень хочется набросить про питон чтобы быть "как все" - поной с умным видом о пробелах ...


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 02-Июл-20 16:08 
>> Вот, я вызвал раздражение светлоликих знатоков предмета.
> Просто кто-то хотел с умным видом набросить на вентилятор, но получилось "как
> всегда" - вентилятор в неподходящий момент врубил реверс ...

Это точно, от вас именно это и летит...

>[оверквотинг удален]
> *facepalm*
>>  - для python3: ругнётся ...
> *doublefacepalm*
>>    Но: язык допускает i) spaces ii) tabs (визуально неразличимы!)
>> но не смесь i) и ii);
>>    а пробелы (и табуляция) как разделитель отались...
> И сопельки не спешит утирать и кофе в постель не носит и
> вообще, что-то там про "взрослых людей пишут" хотя на опеннете анонимы
> писали что оно точно-точно для уровня детского сада - вот же
> гады и обманщики!

Спасибо за наставления, взрослый человек! И вам тоже не хворать.


>> Не, ну очень целостный и логичный язык после этого...
> Когда не знаешь матчасти, но очень хочется набросить про питон чтобы быть
> "как все" - поной с умным видом о пробелах ...


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено userd , 30-Июн-20 12:54 
Сразу видно «теоретика», задающего вопросы и ничего не делающего для самостоятельного ответа.
Цена ответа - три строки на python. Или Вы боитесь «оскоромиться»?

Держи, бедолага -
python2 - как попросишь,
python3 - однозначно «TabError: inconsistent use of tabs and spaces in indentation»


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено anonymous yet another , 02-Июл-20 13:49 
Спасибо, о великий питоногуру-сан!

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 13:12 
Можно подумать что в языке без отступов не нужно делать отступы... Формально конечно не нужно, но такой код другим людям лучше не показывать.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:21 
В языке со скобочками отступы может расставить (или исправить) форматтер. А в питончике хошь – не хошь, а считай пробелы сам.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 19:37 
Я не могу похвастся огромным опытом написания скриптов на пайтоне, ну может пяток скриптов строк по 500 написал, но мне ни разу не приходилось считать пробелы. Начинаю подозревать, что подсчёт пробелов в пайтоне -- это миф выдуманный хейтерами.

Единственное что мне пришлось дополнительно освоить для пайтона -- это как попросить emacs поменять отступ для блока целиком, но это две команды, дефолтом забинженные на "C-c C-l" и "C-c C-r". Но мне кажется, это не должно влиять, это ж просто автоматизация: вместо того, чтобы многократно тыкать <TAB> <DOWN> <TAB> <DOWN> ... и так перебирать все строки, можно выделить и сделать "C-C C-r". В любом случае ничего не надо считать.

Может если в блокноте редактировать, приходится считать? Расскажи нам, какой должен быть сетап рабочего места, чтобы пришлось считать пробелы.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 20:35 
> Я не могу похвастся огромным опытом написания скриптов на пайтоне, ну может пяток скриптов строк по 500 написал, но мне ни разу не приходилось считать пробелы. Начинаю подозревать, что подсчёт пробелов в пайтоне -- это миф выдуманный хейтерами.

В своём коде и мне не приходилось, благо нормальным редактором пользуюсь. Но зато уж в чужом… Видел даже в пакете одного дистрибутива патч, добавляющий в код пробел.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Ordu , 29-Июн-20 20:56 
>> Я не могу похвастся огромным опытом написания скриптов на пайтоне, ну может пяток скриптов строк по 500 написал, но мне ни разу не приходилось считать пробелы. Начинаю подозревать, что подсчёт пробелов в пайтоне -- это миф выдуманный хейтерами.
> В своём коде и мне не приходилось, благо нормальным редактором пользуюсь. Но
> зато уж в чужом…

А, я понял. Сворачивай блоки просто и разворачивай. Тебе ведь не интересно количество пробелов само по себе, тебе интересно где какой блок заканчивается: если ты сворачиваешь блок, ты видишь его конец рядом с началом. Это с любым языком удобно, на самом деле.

> Видел даже в пакете одного дистрибутива патч,
> добавляющий в код пробел.

Один пробел? Кто-то в блокноте набирал? Строчки же равняются табом, а там кратно четырём пробелы ставит.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним84701 , 29-Июн-20 21:27 
> В своём коде и мне не приходилось, благо нормальным редактором пользуюсь. Но зато уж в чужом… Видел даже в пакете одного дистрибутива патч, добавляющий в код пробел.

Угу. И то ли дело


if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
    goto fail;
    goto fail;


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено all_glory_to_the_hypnotoad , 30-Июн-20 17:02 
Конечно, не нужно и это особенно заметно когда нужно поправить код на машине с ненастроенным текстовым редактором. Тем более скобками можно делать замыкание, а в ЯП на отступах такое невозможно. Отступы это самая большая ошибка в дизайне синтаксиса/грамматики языка общего назначения.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Xasd5 , 28-Июн-20 16:59 
> аналогичный используемому для конструкций "if ... elif ... else"

сэтого надо было начинать!

расходимся ребята


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 16:59 
Очень перегруженный язык стал

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 17:50 
Ведь отсутствию switch всегда было объяснение. Но теперь он зачем-то понадобился еще и не такой как у всех.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 17:40 
Еще бы Self добавили как алиас для имени класса

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 17:49 
Если в 2020 году на Землю в довершение ко всему упадет метеорит я даже не удивлюсь.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Anonymoustus , 29-Июн-20 06:15 
> Если в 2020 году на Землю в довершение ко всему упадет метеорит
> я даже не удивлюсь.

Пксть падает на Москву или на Коммифорнию.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено sergey , 29-Июн-20 06:45 
Наверняка уже не один упал. Поищите в новостях.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 18:01 
А зачем оно нужно то, кроме как для красивостей, если в конечном итоге это будет транслироваться в тот же if-elif?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 09:41 
как и любой другой сахар, он нужен для красивостей/удобства разработчика. Во что он там транслируется мало кого интересует, кроме случая срача в комментах

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:29 
30 лет как-то без сахара прожили.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 18:11 
> case 401|403|404:

стремно выглядит, пахнет undefined behavior'ом


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 19:00 
это даже не UB, а УГ

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 14:12 
Там у них всего один возразил, а в ответ "ну, так же сделано в баше!". При этом в текущем пистоне все работает как положено

if 407 == 401|403|404:
  print("ok")

Как теперь запилить результат 1|2|3 в case? Самому каждый раз калькулировать или выделять переменную для этого? Что они там курят? Нет, я понял, что Гвидо это сделал для тупых веб-сайт-клепателей, но нельзя же на полном серьезе это допускать.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:29 
> так же сделано в баше!

Ну, я тогда лучше этот баш и буду использовать.


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 28-Июн-20 20:15 
Не нужны они в питоне. Для сопостовления с образцом следует использовать оператор индексации __getitem__.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено srgazh , 28-Июн-20 20:57 
Прикольно

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 19:02 
прикольно в цирке, а тут вроде язык программирования... или уже не программирования...

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 03:11 
Ну в Haskell паттерн мэтчинг удобный, кстати, я большой фанат. Как это хорошо ложится на питон, не уверен, на Питоне пишу очень мало, и если честно до конца не разобрался что да как

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 06:22 
Стремление к совершенству ... К Cи.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 15:01 
> Стремление к совершенству ... К Cи.
>> match
>> case BinOp(op=Add()|Sub()):

Стремление к вспуку в лужу.
> совершенству ... К Cи.
> case foo: bar; break;
> совершенству

двойному вспуку.



"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Daemon , 29-Июн-20 07:03 
Ну раз хочет он это сделать - ну форкни ты крайнюю версию и добавь все это. Что другим мозги парить?

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 08:27 
Дык в том-то и дело, что этим деятелям нравится мозги парить. Им не нужен результат, им нужен процесс пропихивания булшыта в мозги юзверей.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 10:33 
Странно сравнивать Python с Си. Сравнивайте с Perl или C#, где подобное давно (или не очень давно) уже имеется.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:25 
> где подобное давно

у вас опечатка в слове "*авно"


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 23:13 
Проецируете комплексы, связанные с нехваткой денег? Может, лучше всё же к клиническому психологу сходить? В Москве есть бесплатная служба, может, и в других городах найдётся что-то подобное.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено бедный буратино , 29-Июн-20 11:12 
это уже было у Грибоедова

"где, покажите нам, отечества отцы, которых мы должны принять за образцы"


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:24 
> которых мы должны принять за образцы

Си. Plain Си. (с)


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 15:38 
Прежде, чем принять для включения, нужно бы выяснить, не оскорбляют ли новые ключевые слова чьи-либо чувства. ;)

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Anonimus , 29-Июн-20 15:43 
А как избежать конфликта с gettext?

import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print(_('This is a translatable string.'))


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:49 
Это же питон, их не волнуют проблемы юзверей, на которых они смотрят с высокой колокольни.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 18:22 
создать инстанс для сравнения?? это не кабздец ли?

   match point:
       case Point(x, y) if x == y:
           print(f"Y=X at {x}")

мочить в сортире вас, питонщиков


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 23:16 
Хороший компилятор для простого класса (типа того же Point) такое должен соптимизировать до простого выделения памяти на стеке и записи в неё... Но я сильно не уверен, что это случай Python, да.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 29-Июн-20 21:48 
Только первый пример понравился. Во втором создаются экземпляры того же класса для сравнения с образцом. Фу так делать. В третьем примере легко забыть поставить точку перед именем константы.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 30-Июн-20 00:11 

  def whereis(point):
       match point:
           case Point(0, 0):
               print("Origin")
           case Point(0, y):
               print(f"Y={y}")
           case Point(x, 0):
               print(f"X={x}")
           case Point():
               print("Somewhere else")
           case _:
               print("Not a point")

   match point:
       case Point(x, y) if x == y:
           print(f"Y=X at {x}")
       case Point(x, y):
           print(f"Not on the diagonal")

Никак не могу понять почему в первом случае
           case Point():
а не Point(x, y)
и в это же время во втором
       case Point(x, y):
а не Point()
?

Верно ли что Point(x, y) == Point() ?


"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 30-Июн-20 00:42 
Это питон, детка, теперь тебе надо ещё кучу непонятностей синтаксиса запомнить.

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 01-Июл-20 14:04 
точно не скажу, но получается, что Point() - экзепляр класса, а Point(x, y) - экземпляр класса с конкретными параметрами

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 30-Июн-20 07:52 
Слушайтесь дядю ван Оппосума он плохого не посоветует. Новости плюс!

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 01-Июл-20 14:00 
я чот не понял, а чё такое E: ??? и зачем точка нужна в case .RED: ??? а так норм

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено Аноним , 01-Июл-20 17:19 
На дворе шел 21-й век ...

"Гвидо ван Россум предложил включить в Python операторы для с..."
Отправлено warus , 01-Авг-20 11:12 
очень не хватало, редиска.
вопрос на повестке давно стоял.
видно слишком высокий, плохо слышит, долго доходит