|
2.19, Аноним (19), 11:34, 28/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> но были отвергнуты в пользу оптимизации конструкции "if ... elif ... else" для составления цепочек сопоставления.
Сначала героически отвергли, потом героически ввели... Ну и кто они после этого?!
| |
|
3.23, Ordu (ok), 11:41, 28/06/2020 [^] [^^] [^^^] [ответить]
| +12 +/– |
> Сначала героически отвергли, потом героически ввели...
Они героически отвергли C-style свитч. А героически ввели Scala-style match.
> Ну и кто они после этого?!
Стратеги. Если бы они приняли C-style свитч тогда, а сейчас добавили бы match, то ортогональность фичей языка пошла бы лесом. И окультурить этот лес селективными вырубками не удалось бы из-за backward compatibility.
| |
|
|
5.37, Ordu (ok), 13:12, 28/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Ну да, а две конструкции по итогу иметь - бог не позволяет.
Ну да, примерно так и есть.
| |
5.51, Анон102010210 (?), 14:21, 28/06/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
1) А зачем засорять язык, если можно не засорять?
2) Бритва оккама
3) Вообще-то у белкового мозга есть лимит возможностей в том, сколько правил можно одновременно соблюдать и эффективно добиваться поставленных целей
| |
|
6.149, Gogi (??), 15:41, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Категорически неверно. "Засорять" - это когда маловажные перделки и "сахарок" добавляются тоннами - как в C# 9.0; А отдельный свич и матч были бы неплохим разделением: когда прогер использует свич, он чётко знает - это БЫСТРО и используем сплошные константы - компилятор легче генерирует оптимальный код. Если это матч - компилер уже знает, надо долго и нудно сопоставлять. И это хорошо.
| |
|
5.79, Z (??), 17:35, 28/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Python этим то и хорош, что не тащить всякий мусор в виде дублирующих операторов!
Посмотрите что с С++ сотворили, чужие исходники читать трудновато.
Меньше операторов это главное что отличает современные языки вроде Go, Rust в результате читаемость чужих исходников резко повышается!
| |
|
6.92, rshadow (ok), 22:22, 28/06/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
> дублирующих операторов
На вскидку: elif, for/while
> Меньше операторов
Нет. Не операторов меньше. В go например есть и if и switch.
Уменьшают базовую бибилиотеку: никто не тащит в стандарт например парсинг cvs и т.д. Не потому что не могут, а потому что и сторонние разработчики хорошо справляются. Лучше сделать хороший пакетный менеджер, чем поддерживать зоопарк фичей.
| |
|
5.93, rshadow (ok), 22:25, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Нафига две-то? Скриптовый язык, по определению, имеет "умные" операторы. А не "тупо" транслирует в машинный код.
Сделали бы сразу switch, а потом наворачивали на него поддержку таплов, регэкспы и прочее и прочее
| |
|
4.34, Аноним (19), 13:10, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> ортогональность фичей языка пошла бы лесом
она и так пошла лесом, то, что делалось ифом, сейчас ещё и мачем.
| |
|
5.38, Ordu (ok), 13:22, 28/06/2020 [^] [^^] [^^^] [ответить] | +/– | Да Но match удобнее на некоторых случаях Это во-первых сокращение записи попр... большой текст свёрнут, показать | |
|
4.50, Аноним (50), 14:18, 28/06/2020 [^] [^^] [^^^] [ответить]
| +7 +/– |
> не удалось бы из-за backward compatibility.
Не забываем что разговор о питоне.
| |
4.102, Аноньимъ (?), 00:22, 29/06/2020 [^] [^^] [^^^] [ответить]
| –4 +/– |
Насмешили!
Многоходовочка от Гвидо! Всех переиграл!
Питон это помойка некогерентного синтаксиса с семантикой бейсика.
| |
|
5.105, Ordu (ok), 00:46, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Насмешили!
Я рад.
> Многоходовочка от Гвидо! Всех переиграл!
Нет. Многоходовочка -- это когда план был составлен априорно. Здесь же, ситуация иная, switch был отвергнут из общих соображений, а не потому, что кто-то планировал впоследствии добавить match.
> Питон это помойка некогерентного синтаксиса с семантикой бейсика.
Совершенно нерелевантный обсуждению кусок информации. Твоё отношение к python'у никому не интересно.
| |
|
6.106, Аноньимъ (?), 01:07, 29/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Секреты интриги расследования. Тонкое стратегическое мышление в развитии скриптов для домохозяек.
Мои бока.
Не знал что у Питона есть секта фанатиков в рунете которые на полном серьезе интересуются "полезной" "политинформацией" о тонкостях решений закулисами так сказать.
Еще и инфантильное тыканье, вы студент? Или Школьник может? Не примите за оскорбление, а то многие на школьника обижаются почему-то. Это нормально ведь, в школе учиться. Только питон там зря преподают. Раньше паскалю учили.
Ну и с чего вы взяли, что можете релевантность чего-либо определить? Ну будь вы хоть Гвидо этим, еще понятна была бы такая напыщенность. Но вот лично вы, никакого отношения к успехам питона не имеете.
| |
|
7.109, Ordu (ok), 01:39, 29/06/2020 [^] [^^] [^^^] [ответить] | +/– | Я бы встречно предположил, что студент тут ты искать и находить секретные гр... большой текст свёрнут, показать | |
|
|
9.133, Ordu (ok), 10:00, 29/06/2020 [^] [^^] [^^^] [ответить] | +/– | Ну да, давай, демонстрируй нам свою способность уходить в кристаллизованный ad h... текст свёрнут, показать | |
|
|
|
|
|
4.118, Atterratio (ok), 07:48, 29/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
А можно для идиотов объяснить в чём принципиальное отличие? Я по коду особой разницы не вижу.
| |
|
5.123, Аноним (19), 08:46, 29/06/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Они сами не могут объёснить, как 30 лет жили без мачи, а теперь вдруг ввели её себе в голову.
| |
|
|
|
|
1.2, Аноним (2), 09:54, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Регулярки-то можно будет запихнуть туда? Реальный юзкейс. xD
Но да, не хватало для счастья именно этого. Ну, среди прочего. Эх, ещё бы := в ф-строки пихать разрешили... Или это уже перебор?
| |
|
2.3, Аноним (2), 10:00, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Правда, как сахар для if не очень полезно, наверное. Лучше бы чем-нибудь полезным занимались.
| |
|
3.5, Васька (??), 10:13, 28/06/2020 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вполне себе полезно, т.к. подобные конструкции через if выглядят не по питоновски. Одно из немногих за последнее время изменений делающих питон более питоном, остальное в другую сторону, по большей части.
| |
|
4.35, Аноним (35), 13:11, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Иногда словарь помогает. Но всё зависит от сравниваемых данных.
| |
|
5.62, Аноним (2), 15:35, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Иногда словарь помогает. Но всё зависит от сравниваемых данных.
По-моему со словарём были проблемы с тормозами и перерасходом памяти. Последнее частично исправлялось различными костылями. Я уже не знаю что такое питоновый питон. Сначала привыкаешь к 1 питону, потом привыкаешь к постоянным изменениям, потом уже шпаришь со всеми новыми фичами -- ведь они стабильно повышают удобство и качество жизни. Решение оставить на плаву 2 питон в течение такого срока было совершенно фатальным, теперь нужно навёрстывать.
| |
|
6.72, Васька (??), 16:27, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Питон это красивый ясночитаемый код, в первую очередь, для тех кому нужно. В этом сила этого языка - писать быстро, читать легко, даже чужое. Остальное либо производное от этого, либо является минусом.
Потому - более по-питоновски, по моему мнению, это все, что угодно в пользу этого факта. Последнее время конструкции языка усложняются и вообще местами напоминают натягивание совы на глобус, мне не сложно, мне непонятно нафига.
Драма перехода на три это как застиранное пятно от кофе на рубашке определенной репутации языка. Никуда оно уже не денется, странно, что вы с ней ещё носитесь.
| |
|
7.77, Аноним (2), 17:05, 28/06/2020 [^] [^^] [^^^] [ответить] | –2 +/– | Возьмите луа, если вам так хочется На мой взгляд, чем сложнее и мощнее язык, те... большой текст свёрнут, показать | |
|
8.195, dffdf (?), 07:53, 01/07/2020 [^] [^^] [^^^] [ответить] | –1 +/– | вопрос решите и обоснуйте решение 4 2 4-2 а то развелось тут специалистов по ... текст свёрнут, показать | |
|
|
|
|
|
3.7, Васька (??), 10:27, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Скорей, конечно, надо читать: "предложенные выглядят более по питоновски", так правильно
| |
|
4.61, Кондратий (?), 15:28, 28/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
В каком-нить экзотическом Парсер (Parser3/parser.ru) - конструкция switch - case/default почти 20 лет из коробки, и ооочень широко используется для опциального ветвления, без нее тяжко, пример в топике актуальный.
| |
4.101, vitalif (ok), 00:17, 29/06/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
"Добрый день, к вашим услугам питон-разработчик, слонёнок-тестер и мартышка-тимлид" (c)
| |
|
|
2.11, Аноним (11), 11:05, 28/06/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
>ещё бы := в ф-строки пихать разрешили
ловите наркомана.. надеюсь такие побочные эффекты никогда в язык не пролезут - жаль что в принципе это присваивание просочилось.
| |
|
3.16, Аноним (2), 11:21, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Ну так сейчас их в .format() класть приходится, было бы удобней и менее грязно сразу на месте. А так приходится отказываться от продвинутых эффективных строк. Нет, не жаль, такое присваивание позволяет писать более эффективные однострочники.
| |
|
2.154, Sarcastic scutosaurus (?), 18:05, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Регулярки-то можно будет запихнуть туда? Реальный юзкейс.
Вот так хочешь?
[CODE]
for ($var) {
/regex1/ ? do_something() :
/regex2/ ? do_something_other() :
default_action();
}
[CODE]
Так очень даже запросто. Только гвидобейсик придётся выкинуть…
| |
|
1.4, Иваня (?), 10:03, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +9 +/– |
Да блин, в питоне синтаксис итак перегружен, столько всяких конструкций, за один день не разберёшься со всем, а он ещё хочет усложнить 😢
| |
|
|
|
|
5.69, Аноним (19), 16:03, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
ООП есть везде, где есть процедуры и данные. Главное, чтобы не развился ООП головного мозга.
| |
|
6.94, rshadow (ok), 22:30, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Чисто теоретически ООП, это набор самоограничений, позволющий осиливать сложность ПО. Если нет классов, то можно их реализовывать например на уровне подключения файлов. Или придумать любой свод правил на том что есть =)
| |
6.192, Аноним (192), 15:43, 30/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
А как на одних только процедурах и данных реализовать инкапсуляцию, наследование, полиморфизм?
| |
|
|
4.78, draw1 (?), 17:16, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> В брейнфаке плохо реализовано ООП )
По-моему, там просто отличное ООП! ))
| |
|
5.124, Аноним (19), 08:52, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Похоже, изучение ООП надо начинать с ассемблера. Вот тогда в мозгах будет правильный ООП. Как напишет хомячок на асме VMT, так сразу будет знать, что это такое.
| |
|
6.200, Урри (?), 10:44, 02/07/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это на и сишечке сделать несложно. Зачем же из пушки по воробьям то стрелять?
| |
|
|
|
|
|
1.8, Аноним (8), 10:36, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
_ - не улучшит читаемость кода. Улучшит её default: как например в C#
| |
|
2.9, Аноним (9), 10:42, 28/06/2020 [^] [^^] [^^^] [ответить]
| +15 +/– |
Это не по-питоновски. Чем менее понятно, что происходит, тем более питоновской является конструкция.
| |
2.14, Аноним (11), 11:11, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
дефолт еще хуже, потому что новое ключевое слово. понимаю - в шарпах об этом совсем не парятся, но в питоне стараются сделать еще и красиво(минимализм рулит) надеюсь else будет (для симметрии с try/for/if).
| |
|
3.65, Аноним (65), 15:51, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> в питоне стараются сделать еще и красиво
Субъективщина. Не считаю гвидобейсик "красивым".
> минимализм рулит
Тогда иди в Brainfuck.
| |
|
4.128, Аноним (11), 09:40, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
>Субъективщина
тут не спорю
мне кажется очевидный факт что чем меньше ключевых слов - тем лучше для языка при одинаковом наборе фичей. это и есть продуманность и согласованность их(фич) друг с другом
| |
|
|
4.126, Аноним (11), 09:37, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
>А тут попытка усидеть на двух стульях.
и надо признать что у них весьма не дурно это получается, судя по всем рейтингам и такой широкой области применимости - наверное даже самой широкой
| |
|
5.130, Аноньимъ (?), 09:44, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Успех питона несвязан с техническими свойствами языка.
Он экономический и политический.
| |
|
6.137, Аноним (11), 11:12, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
сильное заявление, требующие доказательства. хотел бы узнать более развернуто почему питон по-вашему популярен. да - у питона много недостатков, но остальные языки имеют их еще больше(не говорю за хаскели/эрланги и прочие кложуры, потому как не работал с ними плотно)
| |
|
|
|
|
2.20, n00by (ok), 11:38, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
_ традиционно используется в языках, где петтерн-матчинг имеется изначально.
| |
2.24, Аноним (24), 11:44, 28/06/2020 [^] [^^] [^^^] [ответить]
| +5 +/– |
В Python даже для for и while есть else, логично использовать его и здесь.
| |
|
1.10, Аноним (12), 11:01, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Гвидо вместо того чтобы повелеть своим диктаторским решением, выставил на рассмотрение? Куда катится этот мир.
| |
|
2.97, пох. (?), 23:09, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Гвидо вместо того чтобы повелеть своим диктаторским решением,
> выставил на рассмотрение? Куда катится этот мир.
я надеюсь, ему велят катиться со своим очередным switch - "голым сували и будем сувать, вези еще elifов!"
хотя, попытка с '_' хороша своей полной нечитаемостью. Так что может в этот раз и прокатить.
| |
|
1.15, Anonymoustus (ok), 11:16, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Есть такие, кто сходили почитать pep-3103? В этих четырёх вариантах синтаксиса новой конструкции вся убогость Пихтона как на ладони. А еще Перл им, понимаешь, не нравится… :-)
| |
|
2.95, rshadow (ok), 22:35, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Perl можно во многом обвинять, но в синтаксисе он топовый. Все таки лингвист создавал.
Конечно если не писать специально "типичные программы на perl".
| |
|
1.18, Аноним (18), 11:29, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Почему просто switch не добавить? Если оно выглядит как switch, крякает как switch, то это switch.
Назвав конструкцию match, они и провоцируют вопрос, заданный выше, про регулярки.
| |
|
2.21, Аноним (19), 11:40, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Тоже сначала подумал, что наконец-то оператор регулярок сделали... Ан нет, сделали по пи... по питоновски, "никакулюдей", "яойсобенная".
| |
2.22, n00by (ok), 11:41, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вот настоящий 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.html
| |
|
|
4.32, n00by (ok), 12:30, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> На тридцати языках: 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)
указан РЕФАЛ, а в русскоязычном про него ничего нет (в РЕФАЛ через сопоставление реализуется вообще всё).
| |
|
|
2.25, Аноним (24), 11:46, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Крякает он как раз как match, судя по выражению "case Point(x, y) if x == y", такое никакой switch провернуть не сможет.
| |
|
3.26, n00by (ok), 11:49, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Крякает он как раз как match, судя по выражению "case Point(x, y)
> if x == y", такое никакой switch провернуть не сможет.
Спасибо, проглядел if.
| |
3.131, Аноним (131), 09:47, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это вообще синтаксический ад какой-то, честно говоря.
Для такого надо или ИЛИ пихать или не делать такое вообще.
| |
|
2.36, коржик (?), 13:11, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Если оно выглядит как switch, крякает как switch, то это switch.
Не совсем.
match это по идее выражение, оно возвращает один из подошедших вариантов,
switch - это как правило стейтмент (поправьте, как правильно говорить), который ничего не возвращает, еще и проваливается сверху-вниз если break не поставить.
| |
|
3.99, Александр (??), 23:50, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Кстати, в каком-то языке я встречал возвращающий switch. Выглядело (условно) это как-то так:
int r = switch (op)
{
case '+': a + b;
case '-': a - b;
case '*': a * b;
case '/': a / b;
};
| |
|
4.116, коржик (?), 06:51, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Кстати, в каком-то языке я встречал возвращающий 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(),
};
| |
|
|
6.135, Аноним (135), 10:37, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Прикол же, чисто демонстрационный. В реальности действительно приятная вещь... знакомая, по сути, всем любителям функционального программирования. ;)
| |
|
|
|
|
2.57, myhand (ok), 14:54, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Почему просто switch не добавить?
Потому что это не switch. Читайте pep.
> Назвав конструкцию match, они и провоцируют вопрос, заданный выше, про регулярки.
Да, существуют граждане, закомящееся с языком как-то по basic-english словарю и ключевым словам...
Но если делать язык в расчете на подобных, выражусь политкорректно, идиотов - получится язык для идиотов.
| |
|
1.27, corvuscor (ok), 11:56, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
А мне нравится, очень хорошо читаемая конструкция, я лично за.
Меня лично эти if-elif-else в питоне всегда бесили, предпочитаю вместо них словари, но это тоже адский костыль и не всегда удобнее.
| |
|
2.146, Аноним (-), 15:15, 29/06/2020 [^] [^^] [^^^] [ответить]
| –5 +/– |
Самый лучший способ улучшить читаемость программ - нигде не использовать питон....
| |
|
1.29, YetAnotherOnanym (ok), 11:59, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
У меня, как и у многих, тоже возник вопрос "А где ты раньше был", но вроде бы штука удобная, м.б. лучше поздно, чем никогда? (Дисклеймер: не питонист ни разу)
| |
|
2.63, Вы забыли заполнить поле Name (?), 15:48, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> У меня, как и у многих, тоже возник вопрос "А где ты раньше был",
Мировоззрение меняется просто. Может он поиспользовал эту конструкцию в других языках и понял, что удобно.
| |
|
1.30, Аноним (30), 12:03, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
> case Point():
Это выглядит как создание объекта со значением по умолчанию, почему оно должно совпасть с любым другим значением не совсем ясно.
| |
|
2.64, Вы забыли заполнить поле Name (?), 15:51, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> почему оно должно совпасть с любым другим значением не совсем ясно
Как я понимаю оно совпадает с произвольной точкой (в смысле не с (0, 0), (x, 0) или (0, y)). Любое другое значение - это _.
| |
|
3.166, Ordu (ok), 19:24, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вопрос, как я понимаю в том, почему используется синтаксис Point(), а не Point(_, _).
| |
|
|
1.39, Аноним (-), 13:22, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Может я что то в жизни не понимаю, но ООП для этого вроде и придумали что бы не пихать новый синтаксис, а создавать "новые" комманды на основе классов, для языка.
| |
|
2.40, нона (?), 13:31, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Определенно не понимаешь, ООП придумали, чтобы книжки таким как ты продавать.
| |
2.179, Аноним (135), 23:22, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
ООП придумали чтобы снизить порог вхождения. Объекты со свойствами и наследованием принять проще, чем непонятные регистры и слабо укладывающиеся в голове математика «функции».
| |
|
1.45, ALex_hha (ok), 13:48, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Также вызывают вопросы внутренняя организация, основанная на трансляции новых выражений в байткод, аналогичный используемому для конструкций "if ... elif ... else", что не обеспечит желаемой производительности при обработке очень больших наборов сопоставлений.
думаю, тут дело в первую очередь про удобство, а не производительность. Ибо "if ... elif ... else" ацки неудобная. Очень не хватает switch/case
| |
|
2.67, Аноним (19), 15:59, 28/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Ибо "if ... elif ... else" ацки неудобная.
30 лет с ифом жили, и тут - бац! - прям озарило...
| |
2.151, Anonim (??), 16:06, 29/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это тот switch, в котором практически для каждого case нужно рисовать break? Спасибо не надо.
| |
|
3.156, Аноним (156), 18:17, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Сделай switch, в котором не надо рисовать break. Но можно нарисовать fallthrough при необходимости. Ой, нет, так уже другие люди сделали…
| |
3.170, Аноним (19), 19:49, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Начнёшь писать программы - поймёшь, почему где-то нужен break, а где-то - нет.
| |
|
|
1.53, Аноним (53), 14:28, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
Лучше верни master/slave, идиотизм какой-то потакать 0.01% извращенцев и менять веками устоявшиеся конструкции.
| |
|
2.70, Аноним (65), 16:06, 28/06/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Петончик как модный хайповый язык не может не потакать 0.01% извращенцев. Страдайте.
| |
|
3.89, Аноним84701 (ok), 19:53, 28/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Петончик как модный хайповый язык не может не потакать 0.01% извращенцев. Страдайте.
>>> предложил включить в Python операторы для сопоставления с
>> менять веками устоявшиеся конструкции.
Анонимы, как истинные анонимы, не могут просто взять и прочитать новость, а не придумывать и оспаривать что-то по ключевым словам заголовка?
| |
|
|
|
2.88, Аноним (88), 19:40, 28/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Языков со скобками полно на любой вкус, от криворожденных JavaScript и PHP до нормальных. Питон прекрасен отступами.
| |
|
|
4.198, Аноним (198), 14:11, 01/07/2020 [^] [^^] [^^^] [ответить]
| +/– |
Может обоснованно ответишь? Или нужно догадаться, чем тебе отступы не угодили?
| |
|
3.111, Anonymoustus (ok), 06:13, 29/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Языков со скобками полно на любой вкус, от криворожденных JavaScript и PHP
> до нормальных. Питон прекрасен отступами.
И поэтому даже у авторов языка возникает четыре (!) варианта написания новой конструкции.
| |
3.120, Аноним (19), 08:35, 29/06/2020 [^] [^^] [^^^] [ответить]
| –3 +/– |
Это какой-то цирк, запоминать, кроме синтаксиса, ещё и количество отступов у элементов конструкции... Мы что, черчением занимаемся по ГОСТу?!
| |
|
4.144, анонн. (?), 15:07, 29/06/2020 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Это какой-то цирк, запоминать, кроме синтаксиса, ещё и количество отступов у элементов конструкции... Мы что, черчением занимаемся по ГОСТу?!
>> 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.
Скорее похоже на цирк опеннетных Знатоков в комментариях.
| |
|
3.140, anonymous yet another (?), 13:05, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Вот у меня такой вопрос: как интерпретируется ситуация
со смесью spaces/tabs и тем, что табуляция может
быть настроена на разный размер?
| |
|
4.147, анонн. (?), 15:21, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> Вот у меня такой вопрос: как интерпретируется ситуация со смесью 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.
| |
|
|
6.153, анонн. (?), 16:59, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
>>> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs
>> https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
> Ну вот ссылочку вы прислали, а на вопрос не ответили.
> Я же не про "как мне жить --- с пробелами или табуляцией".
Какая буква в "disallows" вам не понятна?
> Как питон разруливает мешанину пробелов и табуляций?
>> TabError: inconsistent use of tabs and spaces in indentation | |
|
7.187, anonymous yet another (?), 03:47, 30/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
>>>> Вот у меня такой вопрос: как интерпретируется ситуация со смесью spaces/tabs
>>> https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces
>> Ну вот ссылочку вы прислали, а на вопрос не ответили.
>> Я же не про "как мне жить --- с пробелами или табуляцией".
> Какая буква в "disallows" вам не понятна?
Все. Позволять/непозволять --- это не питонье дело, а автора.
Питон может на это как-то реагировать. А может не реагировать.
Если он такое увидел, то как он реагирует?
По ссылке написана хрень, IMO: там написано "было бы хорошо, если
бы вы писали свой код хорошо".
| |
|
8.194, анонн. (?), 17:29, 30/06/2020 [^] [^^] [^^^] [ответить] | +/– | Cинтаксис и семантика в спеках ЯП это семантика и синтаксис именно ЯП, а не разм... большой текст свёрнут, показать | |
|
|
10.203, Аноним (-), 14:58, 02/07/2020 [^] [^^] [^^^] [ответить] | +/– | Просто кто-то хотел с умным видом набросить на вентилятор, но получилось как вс... большой текст свёрнут, показать | |
|
|
|
|
6.190, userd (ok), 12:54, 30/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Сразу видно «теоретика», задающего вопросы и ничего не делающего для самостоятельного ответа.
Цена ответа - три строки на python. Или Вы боитесь «оскоромиться»?
Держи, бедолага -
python2 - как попросишь,
python3 - однозначно «TabError: inconsistent use of tabs and spaces in indentation»
| |
|
|
|
|
2.141, Аноним (88), 13:12, 29/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
Можно подумать что в языке без отступов не нужно делать отступы... Формально конечно не нужно, но такой код другим людям лучше не показывать.
| |
|
3.158, Аноним (156), 18:21, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
В языке со скобочками отступы может расставить (или исправить) форматтер. А в питончике хошь – не хошь, а считай пробелы сам.
| |
|
4.167, Ordu (ok), 19:37, 29/06/2020 [^] [^^] [^^^] [ответить] | +1 +/– | Я не могу похвастся огромным опытом написания скриптов на пайтоне, ну может пято... большой текст свёрнут, показать | |
|
5.172, Аноним (156), 20:35, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Я не могу похвастся огромным опытом написания скриптов на пайтоне, ну может пяток скриптов строк по 500 написал, но мне ни разу не приходилось считать пробелы. Начинаю подозревать, что подсчёт пробелов в пайтоне -- это миф выдуманный хейтерами.
В своём коде и мне не приходилось, благо нормальным редактором пользуюсь. Но зато уж в чужом… Видел даже в пакете одного дистрибутива патч, добавляющий в код пробел.
| |
|
6.174, Ordu (ok), 20:56, 29/06/2020 [^] [^^] [^^^] [ответить] | +/– | А, я понял Сворачивай блоки просто и разворачивай Тебе ведь не интересно колич... большой текст свёрнут, показать | |
6.175, Аноним84701 (ok), 21:27, 29/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
> В своём коде и мне не приходилось, благо нормальным редактором пользуюсь. Но зато уж в чужом… Видел даже в пакете одного дистрибутива патч, добавляющий в код пробел.
Угу. И то ли дело
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
| |
|
|
|
3.193, all_glory_to_the_hypnotoad (ok), 17:02, 30/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Конечно, не нужно и это особенно заметно когда нужно поправить код на машине с ненастроенным текстовым редактором. Тем более скобками можно делать замыкание, а в ЯП на отступах такое невозможно. Отступы это самая большая ошибка в дизайне синтаксиса/грамматики языка общего назначения.
| |
|
|
1.74, Xasd5 (?), 16:59, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> аналогичный используемому для конструкций "if ... elif ... else"
сэтого надо было начинать!
расходимся ребята
| |
|
2.82, Аноним (82), 17:50, 28/06/2020 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ведь отсутствию switch всегда было объяснение. Но теперь он зачем-то понадобился еще и не такой как у всех.
| |
|
1.81, Аноним (82), 17:49, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Если в 2020 году на Землю в довершение ко всему упадет метеорит я даже не удивлюсь.
| |
|
2.113, Anonymoustus (ok), 06:15, 29/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Если в 2020 году на Землю в довершение ко всему упадет метеорит
> я даже не удивлюсь.
Пксть падает на Москву или на Коммифорнию.
| |
|
1.84, Аноним (84), 18:01, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
А зачем оно нужно то, кроме как для красивостей, если в конечном итоге это будет транслироваться в тот же if-elif?
| |
|
2.129, Аноним (131), 09:41, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
как и любой другой сахар, он нужен для красивостей/удобства разработчика. Во что он там транслируется мало кого интересует, кроме случая срача в комментах
| |
|
|
2.142, Аноним (142), 14:12, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Там у них всего один возразил, а в ответ "ну, так же сделано в баше!". При этом в текущем пистоне все работает как положено
if 407 == 401|403|404:
print("ok")
Как теперь запилить результат 1|2|3 в case? Самому каждый раз калькулировать или выделять переменную для этого? Что они там курят? Нет, я понял, что Гвидо это сделал для тупых веб-сайт-клепателей, но нельзя же на полном серьезе это допускать.
| |
|
3.162, Аноним (19), 18:29, 29/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
> так же сделано в баше!
Ну, я тогда лучше этот баш и буду использовать.
| |
|
|
1.90, Аноним (90), 20:15, 28/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Не нужны они в питоне. Для сопостовления с образцом следует использовать оператор индексации __getitem__.
| |
|
2.165, Аноним (19), 19:02, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
прикольно в цирке, а тут вроде язык программирования... или уже не программирования...
| |
|
1.110, Аноним (110), 03:11, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ну в Haskell паттерн мэтчинг удобный, кстати, я большой фанат. Как это хорошо ложится на питон, не уверен, на Питоне пишу очень мало, и если честно до конца не разобрался что да как
| |
|
2.143, Аноним (-), 15:01, 29/06/2020 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Стремление к совершенству ... К Cи.
>> match
>> case BinOp(op=Add()|Sub()):
Стремление к вспуку в лужу.
> совершенству ... К Cи.
> case foo: bar; break;
> совершенству
двойному вспуку.
| |
|
1.117, Daemon (??), 07:03, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Ну раз хочет он это сделать - ну форкни ты крайнюю версию и добавь все это. Что другим мозги парить?
| |
|
2.119, Аноним (19), 08:27, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Дык в том-то и дело, что этим деятелям нравится мозги парить. Им не нужен результат, им нужен процесс пропихивания булшыта в мозги юзверей.
| |
|
1.134, Аноним (135), 10:33, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Странно сравнивать Python с Си. Сравнивайте с Perl или C#, где подобное давно (или не очень давно) уже имеется.
| |
|
|
3.177, Аноним (135), 23:13, 29/06/2020 [^] [^^] [^^^] [ответить]
| –1 +/– |
Проецируете комплексы, связанные с нехваткой денег? Может, лучше всё же к клиническому психологу сходить? В Москве есть бесплатная служба, может, и в других городах найдётся что-то подобное.
| |
|
|
1.148, Аноним (192), 15:38, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Прежде, чем принять для включения, нужно бы выяснить, не оскорбляют ли новые ключевые слова чьи-либо чувства. ;)
| |
1.150, Anonimus (??), 15:43, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
А как избежать конфликта с gettext?
import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print(_('This is a translatable string.'))
| |
|
2.164, Аноним (19), 18:49, 29/06/2020 [^] [^^] [^^^] [ответить]
| –2 +/– |
Это же питон, их не волнуют проблемы юзверей, на которых они смотрят с высокой колокольни.
| |
|
1.176, Аноним (88), 21:48, 29/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Только первый пример понравился. Во втором создаются экземпляры того же класса для сравнения с образцом. Фу так делать. В третьем примере легко забыть поставить точку перед именем константы.
| |
1.184, Аноним (184), 00:11, 30/06/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
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() ?
| |
|
2.185, Аноним (19), 00:42, 30/06/2020 [^] [^^] [^^^] [ответить]
| +/– |
Это питон, детка, теперь тебе надо ещё кучу непонятностей синтаксиса запомнить.
| |
2.197, Аноним (198), 14:04, 01/07/2020 [^] [^^] [^^^] [ответить]
| +/– |
точно не скажу, но получается, что Point() - экзепляр класса, а Point(x, y) - экземпляр класса с конкретными параметрами
| |
|
1.196, Аноним (198), 14:00, 01/07/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
я чот не понял, а чё такое E: ??? и зачем точка нужна в case .RED: ??? а так норм
| |
1.207, warus (??), 11:12, 01/08/2020 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
очень не хватало, редиска.
вопрос на повестке давно стоял.
видно слишком высокий, плохо слышит, долго доходит
| |
|