The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Утверждено добавление в Python операторов для сопоставления с образцом

09.02.2021 21:14

Руководящий совет проекта Python утвердил добавление в язык операторов для сопоставления с образцом (match и case). Поддержка новых операторов появится в выпуске Python 3.10. Новые операторы "match" и "case" позволят улучшить читаемость кода, упростят сопоставление произвольных Python-объектов и отладку, а также повысят надёжность кода благодаря возможности расширенной статической проверки типов.

Реализация во многом напоминает оператор "match", предоставляемый в языках Scala, Rust и F#, который выполняет сравнение результата выполнения указанного выражения со списком образцов, перечисленных в блоках на основе оператора "case". В отличие от оператора "switch", доступного в языках Си, Java и JavaScript, выражения на основе "match" предлагают гораздо более широкую функциональность.


def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 401|403|404:
            return "Not allowed"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something else"

Например, возможна распаковка объектов, кортежей, списков и произвольных последовательностей для привязки переменных на основе имеющихся значений. Допускается определение вложенных шаблонов, использование в шаблоне дополнительных условий "if", применение масок ("[x, y, *rest]"), маппинга связок ключ/значение (например, {"bandwidth": b, "latency": l} для извлечения значений "bandwidth" и "latency" из словаря), извлечения подшаблонов (оператор ":="), использования именованных констант в шаблоне. В классах возможна настройка поведения при сопоставлении при помощи метода "__match__()".


   from dataclasses import dataclass

   @dataclass
   class Point:
       x: int
       y: int

   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")


   RED, GREEN, BLUE = 0, 1, 2
   match color:
       case RED:
           print("I see red!")
       case GREEN:
           print("Grass is green")
       case BLUE:
           print("I'm feeling the blues :(")

Ранее попытки реализации операторов сопоставления с образцом предпринимались в 2001 и 2006 годах (pep-0275, pep-3103), но были отвергнуты в пользу оптимизации конструкции "if ... elif ... else" для составления цепочек сопоставления. На этот раз также не обошлось без разделения мнений и для конечного принятия решения в качестве арбитра был привлечён руководящий совет, который сумел прийти к консенсусу.

  1. Главная ссылка к новости (https://mail.python.org/archiv...)
  2. OpenNews: Гвидо ван Россум предложил включить в Python операторы для сопоставления с образцом
  3. OpenNews: Недоработка в Python-скрипте могла привести к неверным результатам в более 100 публикациях по химии
  4. OpenNews: Python переходит на новый цикл формирования значительных выпусков
  5. OpenNews: Выпуск языка программирования Python 3.9
  6. OpenNews: В пакетном менеджере PIP прекращена поддержка Python 2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54563-python
Ключевые слова: python, pattern
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (330) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Онаним (?), 21:22, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Только у меня глаза вытекают от этого кода, улучшить читаемость которого уже не поможет ничто? Казалось бы... вообще примитивные конструкции... а нечитабельно.
     
     
  • 2.4, Аноним (4), 21:26, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • –18 +/
    ой, ну хватит ныть, иди пиши на хрусте, ведь он идеален
     
     
  • 3.37, Онаним (?), 22:46, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы предложили мне ещё более замечательное творение, но я бы рекомендовал женить оба этих экземпляра друг на друге.
     
     
  • 4.46, Dzen Python (ok), 23:17, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ...изыди, изыди, изыди...
     
     
  • 5.47, Онаним (?), 23:19, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ...изыди, изыди, изыди...

    Не изыду.
    Сколько   пробелов     в       этом   комментарии?

     
     
  • 6.50, Аноним (-), 23:32, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Сколько   пробелов     в       этом   комментарии?

    Опеннетные "знотоки-погромисты-в-нотпаде", как всегда, на высоте ...

     
     
  • 7.86, Аноним (86), 04:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Имел я тут с полгода назад дело с знатоком-программистом в современной среде разработки (НЕ на питоне). Поменял в файле десять строк, а коммит выглядел так, словно весь файл заменили другими. Потому что у него, видите ли, среда разработки по умолчанию вместо отступов делает выравнивания. Те, кто пишет "в нотпаде", хотя бы понимают, что они делают.
     
     
  • 8.109, Аноньимъ (ok), 08:49, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы там наверное гит еще и пользуете, специалисты ... текст свёрнут, показать
     
  • 8.145, Онаним (?), 10:16, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну это понятно - если пробелы на табы заменились или назад Вот только не д... текст свёрнут, показать
     
     
  • 9.166, Аноним (166), 11:23, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не используй табы в коде на Python вообще ... текст свёрнут, показать
     
     
  • 10.190, RomanCh (ok), 12:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так лучше ... текст свёрнут, показать
     
  • 8.226, Аноним (-), 15:59, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пробелы внутри строки не считаются, о великий знаток Современная среда разрабо... текст свёрнут, показать
     
  • 6.160, Аноним (160), 10:38, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У каждого языка свой стиль, Python имеет свои особенности, это очень компактный ... большой текст свёрнут, показать
     
     
  • 7.171, Аноним (171), 11:43, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А потом кто-то спрашивает, почему питонистов не считают за разработчиков Именно... большой текст свёрнут, показать
     
     
  • 8.184, Аноним (160), 12:31, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Программист на Python в 10 раз эффективнее и производительные чем программист на... большой текст свёрнут, показать
     
     
  • 9.191, RomanCh (ok), 12:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дражайший, я чуть не захлебнулся в вашем жире перерасходование аппаратных р... текст свёрнут, показать
     
     
  • 10.195, Аноним (160), 13:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я не говорил что в продакшн Python лучше чем бинарь Для написание черновика - P... текст свёрнут, показать
     
     
  • 11.197, Аноним (160), 13:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Переписывать на C стоит только идеальные проекты не требующие доработок ... текст свёрнут, показать
     
  • 11.198, RomanCh (ok), 13:17, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, а потом этот черновик быренько идёт в прод Да так он там и остаётся Я... текст свёрнут, показать
     
     
  • 12.205, Аноним (205), 14:41, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Меряемся у кого быстрее, вызываем 5 раз операцию выбора Код компелять CPython-3... текст свёрнут, показать
     
     
  • 13.209, RomanCh (ok), 14:51, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну, нормальные посоны всегда найдут чем померяться, это да Синтетические пример... текст свёрнут, показать
     
     
  • 14.227, Аноним (227), 16:08, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Фу какие поцики на опеннетах пошли, уже ссут даже на своих быстрых asm, C, C п... текст свёрнут, показать
     
  • 13.307, Ароним (?), 10:06, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Компелять лучше python3 с опциями -OO и запускать pyo pyo оптимизирован, а p... текст свёрнут, показать
     
  • 11.232, SinoptikU (?), 16:22, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Можно с PyInstaller или cxFreeze самодостаточное исполняемое приложение сделать ... текст свёрнут, показать
     
  • 9.321, Аноним (-), 06:41, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И как, много, допустим, операционок питонисты написали Или там фирмварей ECU А... большой текст свёрнут, показать
     
  • 9.341, Конечные пользователи (?), 22:01, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Простити, уважаемые эффективные и производительные програмисты, а для нас у ва... текст свёрнут, показать
     
  • 7.201, Онаним (?), 14:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У меня даже в данном примитиве вытекают глаза от:
    - значимых пробелов
    - HTTP_CODES.get(...), неужели нельзя было сделать что-то типа HTTP_CODES[...]
    - двоеточий в условиях
    - is in
    - 401|403|404
    - case _: - это вообще ужас какой-то, неужели нельзя было default:
    И это ведь на самом-самом примитиве.
     
     
  • 8.207, Аноним (205), 14:48, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Где значимые пробелы HTTP_CODES 400 Bad request ,401 Not allowed ,403 Not a... текст свёрнут, показать
     
     
  • 9.247, Онаним (?), 19:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Покажи однострочник с условием, которое при выполнении условия выполняет более о... текст свёрнут, показать
     
     
  • 10.256, др. Аноним (?), 20:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не пались так сильно, Знаток 100501 ... текст свёрнут, показать
     
     
  • 11.257, Онаним (?), 20:49, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Окей Усложняем задачу if conditionOne doOne if conditionTwo doTwo do... текст свёрнут, показать
     
     
  • 12.259, др. Аноним (?), 21:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сел в лужу - сделай вид, что принимаешь грязевую ванну с Не, в эти глупые игр... текст свёрнут, показать
     
     
  • 13.269, Онаним (?), 22:48, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А вот и эксепшн собственно прилетел ... текст свёрнут, показать
     
     
  • 14.286, др. Аноним (?), 01:07, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Рад, что Знатокам в луж W ванну что-то там прилетело, а то у меня для них опять ... большой текст свёрнут, показать
     
     
  • 15.302, Онаним (?), 09:13, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не, всё нормально Вижу, что через задницу можно, спасибо за то, что таки потра... текст свёрнут, показать
     
  • 15.304, Онаним (?), 09:53, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот самый простой пример - динамический вызов с блокировкой if is_callable ... текст свёрнут, показать
     
  • 11.258, Онаним (?), 20:52, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Или чуть даже попроще if conditionOne for a 0 a 10 a if condition... текст свёрнут, показать
     
  • 7.233, SinoptikU (?), 16:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >HTTP_CODES = {

        400: "Bad request",
        401: "Not allowed",
        403: "Not allowed",
        404: "Not allowed",
        418: "I'm a teapot"
    }

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

     
     
  • 8.242, Аноним (242), 17:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пусть импортируют копию copy deepcopy и изменяют только своей инстанс ... текст свёрнут, показать
     
  • 3.78, псевдонимус (?), 02:17, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сорта.
     
  • 2.6, Аноним (242), 21:28, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это с непривычки наверно, синтаксис очень лаконичный и богатый на возможности, но при этом легкочитаемый. Эти конструкции не так просты и примитивны, как может показаться.
     
     
  • 3.12, Аноним (12), 21:44, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • –16 +/
     
     
  • 4.16, Redirect (??), 21:53, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 5.23, Аноним (23), 22:02, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • –13 +/
     
     
  • 6.34, Школьник (ok), 22:38, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • +5 +/
     
     
  • 7.69, Аноним (69), 01:18, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 7.88, Аноньимъ (ok), 05:05, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 8.158, Школьник (ok), 10:35, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.135, Аноним (-), 09:57, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 8.149, Аноним (149), 10:23, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 9.162, Аноним (-), 10:48, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 8.163, Школьник (ok), 11:00, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.53, SubGun (??), 23:40, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
     
  • 7.104, Аноним (-), 08:37, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 6.68, Аноним (69), 01:16, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.110, Аноньимъ (ok), 08:54, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
     
  • 7.115, SinoptikU (?), 09:26, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 7.153, Аноним (149), 10:26, 10/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 8.279, Аноньимъ (ok), 00:12, 11/02/2021 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 5.54, SubGun (??), 23:42, 09/02/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.15, Аноним (15), 21:49, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > синтаксис очень лаконичный и богатый на возможности

    Вот скажи, что это: 401|403|404... Бинарное "или"? Или case? Очень богатый синтаксис! Богатый на баги.

     
     
  • 4.29, мое правило (?), 22:27, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ну вы задвинули. Это то же самое что и int *i = new int(10); i = i + 1;. Вот что же это такое, что же это может быть... Придирки в стиле "я взял молоток, а он не пилит доску". Просто почитать документацию, и убедится в однозначности кода видимо не судьба.
     
     
  • 5.58, Аноним (15), 23:49, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В питонье доке написано, что палка - это оператор побитового или. Дальше сам сможешь понять?
     
     
  • 6.76, Аноним (76), 02:00, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В питонье доке написано, что палка - это оператор побитового или. Дальше сам сможешь понять?

    Местные "знатоки", как обычно, не в курсе базовых фич обсуждаемого ЯП.



    >>> class myint(int):

            def __or__(self,other): return 42
    >>> myint(10)|myint(20)

    42



    Пример работает во второй и третьей ветке. А называется это "перегрузка операторов".


     
     
  • 7.77, Аноним (76), 02:02, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Пример работает во второй и третьей ветке. А называется это "перегрузка операторов".

    ЗЫ:
    ЧСХ, я уже лет 8 с питоном дела не имел, да и до этого "овладел" на уровне "поправить пару проектов".


     
  • 7.119, Аноним (15), 09:34, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что ты за чушь привёл? Где ты "перегрузку" увидел в кейсе?! Какой там тебе оператор?! Скажи, какой результат/тип оператора "палка" в кейсе.
     
     
  • 8.225, Аноним (-), 15:48, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, это такая попытка спрыга или очередное опеннетное Папа, где море с... текст свёрнут, показать
     
  • 5.111, Аноньимъ (ok), 09:01, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вы задвинули. Это то же самое что и int *i = new int(10); i = i + 1;
    > Вот что же это такое, что же это может быть...

    Няшненькая сиплюшечька.

    Пришлось немного напрячься чтобы вернуться в те времена когда я ЭТО трогал руками и даже понимал.
    Вспомнил, понял, рассмеялся от души.

     
  • 4.39, Онаним (?), 22:47, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Вот скажи, что это: 401|403|404... Бинарное "или"? Или case?

    Это гостиница! Двери!


     
  • 4.43, Vkni (ok), 23:07, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ловко подмечено. В Ocaml это

    match x with
    | 401 | 403 | 404 -> ...
    | _ -> ...

    То есть, явно | относится к pattern matching.

     
  • 4.59, YetAnotherOnanym (ok), 23:49, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > что это: 401|403|404

    Конвейер же!

     
     
  • 5.120, Аноним (15), 09:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Конвейер утечки последних мозгов через нижнее отверстие.
     
  • 4.70, Аноним (69), 01:30, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот буквально недавно багу пофиксил где чувак написал if status == 301 or 302:
    Так что верной дорогой идут товарищи.
     
     
  • 5.143, Клыкастый (ok), 10:14, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ох какие уютные грабельки, прямо канонично
     
  • 4.112, Аноним (112), 09:16, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А что, в ваш колхоз or не завезли?
     
     
  • 5.121, Аноним (15), 09:37, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Понимаешь... "or" в пихтоне - логический оператор, а "палка" - побитовый.
     
     
  • 6.322, Аноним (-), 06:43, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Понимаешь... "or" в пихтоне - логический оператор, а "палка" - побитовый.

    Это для домохозяек слишком сложно, не грузи.

     
  • 3.38, Онаним (?), 22:46, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это да. Один случайно не замеченный пробел открывает целое поле возможностей и вариантов.
     
  • 2.65, Anonymousqwe (?), 00:48, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что же вам не нравится в этом коде и что вы предлагаете взамен?
     
     
  • 3.75, Аноним (69), 01:51, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну мне, например, не нравится сам код. Взамен предлагаю оставить все как было. Тем более, что это не прогресс в синтаксисе, это просто чтобы было "как у всех". Где все, а где мы? - очевидно же. Пчела и муха, пролетая над пастбищем видят совершенно разные вещи.
     
  • 3.98, Аноним (98), 08:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не нравится неудобочитаемость.

    Кому не нравится if elif else может использовать тип json.

     
  • 3.141, Онаним (?), 10:10, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И что же вам не нравится в этом коде и что вы
    > предлагаете взамен?

    В этом коде мне не нравится весь его синтаксис.
    Предлагаю выкинуть.

     
  • 2.82, Аноним (-), 03:40, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я думаю, у тебя от любого кода вытекают глаза, и вообще ты не программист, а тролль.
     
     
  • 3.161, Онаним (?), 10:39, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Инженер, программист и тролль одновременно.
    Такие дела.
     
  • 2.97, Аноним (98), 08:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В python операторов if elif else вполне хватало.

    Если структура данных сложная, то оператор case заменялся мощью питоновского типа словарь (json).

    https://www.askpython.com/python/python-switch-case-implementation

    Заметьте, для читаемости и понимаемости кода рекомендуется if else.

     

     ....большая нить свёрнута, показать (84)

  • 1.2, Леголас (ok), 21:23, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    без малого эпохальное событие
     
     
  • 2.18, Redirect (??), 21:56, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    если честно, я рад! Напрягает часто ветвить if ... elif ... else ...
     
     
  • 3.219, Аноним (15), 15:32, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Напрягает часто ветвить if ... elif ... else ..

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

     
     
  • 4.236, Аноним (242), 16:59, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понимаю, теперь будет нормальное сравнение, потому что is это не ==, и раньше многие сравнения было просто не сделать чисто.
     

  • 1.3, Аноним (242), 21:26, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну в принципе норм, главное же чтоб не свитчи как в си, а нормальные матчи. Ну там чтобы матчить регулярки например. В прошлый раз не взлетело, но с тех пор уже нормально доработали и есть надежда, что в этот раз получится сделать.
     
     
  • 2.220, Аноним (15), 15:33, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ещё через 30 лет догонят Перл... возможно.
     
     
  • 3.221, Аноним (242), 15:36, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так это ж тот язык который остался в 90х. Нет, спасибо.
     
     
  • 4.235, йо ж (?), 16:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    в 90ых осталось чьё-то iq.
     
     
  • 5.238, Аноним (242), 17:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Iq любителей перла? Не знаю, их тоже можно понять. Он вполне плавает ещё до сих пор (хотя именно что плавает, а не плывёт).
     
     
  • 6.316, Аноним (316), 19:33, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > хотя именно что плавает, а не плывёт

    Дерь** как известно не тонет

     
  • 3.262, Аноним (262), 22:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Свою влажные мечты можно тут не озвучивать. Что вообще ты деальешь в этой новости? Заняься нечем? Ах да на перле же только старый софт нужно поддерживать. Лучше, конечно, форум почитать.
     
     
  • 4.276, Аноним (15), 23:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Рефакторну мысль с учётом твоих пожеланий: даже через 30 лет не догонит Перла.
     
     
  • 5.310, Аноним (310), 14:54, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    - слушай, а кто это?
    - это же неуловимый Джо
    - а его правда никто поймать не может?
    - да кому он нахер нужен
     

  • 1.5, Аноним (5), 21:27, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    2021 год все таки. Пора бы. Может к 2030 массивы введут.
     
     
  • 2.9, Аноним (9), 21:37, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это которые from array import array?
     
     
  • 3.123, Аноним (15), 09:39, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да уж... В расте сделали ещё хлеще - stdin - это внешний скачиваемый модуль с какой-то помойки.
     
     
  • 4.156, Аноним (156), 10:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это они покушать принесли.
     
  • 4.181, Аноним (181), 12:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не понял? Вот же он в стандартной библиотеке.
    https://doc.rust-lang.org/std/io/index.html#standard-input-and-output
     
  • 2.96, Аноним (96), 07:46, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    А к 2077 нормальную работу с юникодом.
     
  • 2.295, all_glory_to_the_hypnotoad (ok), 04:07, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    О константах и нормальных enum-ах, видимо, мечтать даже не стоит. Вместо будет тормозное гогно как в новости.
     

  • 1.8, Котовшив (?), 21:33, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Питон это новый C++ в плохом смысле.
     
     
  • 2.314, funny.falcon (?), 18:55, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Языки делятся на те, которые не любят, и те, которые не используют.
     

  • 1.10, kai3341 (ok), 21:39, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В конечном счёте, из новости не следует, что все if/else нужно срочно заменить на новый-банановый match. С виду match чуток вырвиглазый. Очень хочется надеяться, что match даёт манёвр для оптимизаций
     
     
  • 2.17, Аноним (15), 21:53, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > case 401|403|404:

    вот за такое надо руки у авторов вырвать... похоже, из ж*пы.

     
     
  • 3.21, kai3341 (ok), 21:59, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > case 401|403|404:

    Вот как раз это выглядит как оптимизация

     
     
  • 4.44, Аноним (15), 23:10, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    оптимизация скорости скатывания в г*внокод
     
     
  • 5.60, kai3341 (ok), 00:18, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ни логики у вас, ни фантазии. Литерал позволяет собрать возможные варианты в 'frozenset' на этапе инициализации программы и проверить вхождение в этот 'frozenset' за O(1)
     
     
  • 6.105, Аноним (-), 08:42, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    кому вы объясняете? хейтеры понятия не имеют, что такое frozenset, и для чего он нужен
     
  • 6.125, Аноним (15), 09:45, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > за O(1)

    Всегда знал, что пихтонисты что-то употребляют, если не умеют даже O() считать.

     
  • 6.315, funny.falcon (?), 18:57, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Но что мешало использовать запятую вместо пайпа?
     
     
  • 7.319, kai3341 (ok), 23:41, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Но что мешало использовать запятую вместо пайпа?

    Запятая инициализирует кортеж. Пайп же является оператором '__or__'

     
  • 4.223, www2 (??), 15:45, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это выглядит как говно. В try-except тоже можно перехватывать несколько исключений в одном except, но там для этого используют нормальную запятую, а не вертикальную палку, которая у меня лично ассоциируется с битовым ИЛИ.
     
     
  • 5.240, Аноним (242), 17:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Там смысл совершенно иной: ты матчишь кортеж из объектов исключений (и присваиваешь им новые имена в локальном скопе).
     
     
  • 6.277, Аноним (15), 23:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > ты матчишь кортеж из объектов

    Поздравляю! Ты прочитал именно то, что делает case.

     
     
  • 7.280, Аноним (242), 00:18, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты хочешь сказать там a,b,c == 1,2,3 as x,y,z and x is True and y is True and z is True and match1() or a,b,c == 4,5,6 as x,y,z and x is True and y is True and z is True and match2() or a,b,c == 7,8,9 as x,y,z and x is True and y is True and z is True and match3() or nomatch()? Ну в любом случае так менее удобно писать было бы.
     
  • 5.241, Аноним (242), 17:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И кстати, если ты не знал, то палка ещё и оператор объединения словарей и сетов. Оператор может делать что угодно с объектами, ты же не ноешь по поводу перегрузки операторов в плюсах?
     
     
  • 6.278, Аноним (15), 00:00, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > палка ещё и оператор объединения словарей и сетов

    Но здесь нет ни сетов, ни словарей... Одни числа. А для чисел палка - битовое ИЛИ.

     
     
  • 7.281, Аноним (242), 00:20, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет. Числа могут быть и не встроенные.
     
     
  • 8.288, Аноним (15), 01:26, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дак где ты там сеты и словари нашёл ... текст свёрнут, показать
     
  • 7.287, Аноним (287), 01:25, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> палка ещё и оператор объединения словарей и сетов
    > Но здесь нет ни сетов, ни словарей... Одни числа. А для чисел палка - битовое ИЛИ.

    Одна жопа. Форумные воители совсем необучаемые стали?



    >>> class int(int):

    ...     def __or__(self,other): return 42
    ...
    >>> int(1) | 2; 2 | int(3)

    42
    3
    >>> type(1),type(int(1))

    (<class 'int'>, <class '__main__.int'>)



     
     
  • 8.289, Аноним (15), 01:27, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Покажи, как перегружена палка в кейсе ... текст свёрнут, показать
     
  • 3.335, Myyx (?), 19:18, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    print(f"gone{' in a whole' if int(input('yuor gender 0 - female, 1 - man: ')) else ' to a prick'}")
     
  • 2.296, all_glory_to_the_hypnotoad (ok), 04:08, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Очень хочется надеяться, что match даёт манёвр для оптимизаций

    С чего бы это, этот match не только вырвиглазный, но и ещё в большей степени тормозной чем тупой if

     

  • 1.19, Анон1234567890 (?), 21:57, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Смотрю на примеры и го мне начинает нравиться всё больше и больше.
     
     
  • 2.30, Аноним (30), 22:28, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну и го отсюда. Новость про Пайтон.
     
  • 2.228, Брат Анон (ok), 16:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тебе только он начинает нравится?!))) Ну ты медленный))
     

  • 1.22, AntonAlekseevich (ok), 22:01, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    УРА! Жду ebuild(ой, в смысле BUILDPKG[Один [корень] сборочный файл пакета]) с этим безобразием!
     
  • 1.25, name (??), 22:10, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Я скорее на хипстреский Go пересяду, чем читать этот python
     
     
  • 2.31, Аноним (31), 22:31, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ознакомьтесь с Ruby перед этим. Чистенький, маленький, эффективный. Ещё и платят много.
     
     
  • 3.36, Аноним (9), 22:39, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, все супер, только работы не найти
     
  • 3.40, Онаним (?), 22:51, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Чистенький. Маленький. Ненужный.
     
     
  • 4.146, Клыкастый (ok), 10:17, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    гитлаб. там правда от числа рубиновых пакетов слегка пот прошибает, но это уже мелочи.
     
     
  • 5.159, Онаним (?), 10:37, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Редмайн ещё.
    Я как-то мейнтейнил инсталляцию.
    В итоге плюнул и ушёл на жиру.
     
     
  • 6.175, Клыкастый (ok), 12:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Редмайн да, умудрились сделать веселее, чем жира. Но гитлаб нормально мейнтейнится даже в экзотических по нонешним временам вариантах "из гита на реалке".
     
  • 5.244, Аноним (244), 18:39, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    GitHub вроде тоже на ruby написан был долгое время
     
  • 2.99, Аноним (-), 08:25, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    держи в курсе
     
  • 2.113, Аноним (112), 09:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, ты будешь ныть 10 лет сидя у родителей на шее, а потом сбухаешься, как и все кому влом просто взять и подучить что-то прежде чем нести ахинеечку
     
     
  • 3.243, Аноним (244), 18:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Больное дете, у тебя что-то прям до хрустящей корочки....
    я работаю большую компанию где (почти) весь код на C/C++, кроме нескольких проектов которые перелётном к нам в отдел после реорга написаных на python. Язык то я знаю, и по надобности пишу, но читать код написанный другими на нем тяжелее чем на многих других языках.
     

  • 1.26, Аноним (26), 22:10, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    интересно, а если я перед этим сделаю

    from re import match

    то никому не поплохеет?

     
     
  • 2.62, Аноним (62), 00:43, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вот кстати - да...
    Плюсую
     
  • 2.63, kai3341 (ok), 00:44, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    блин, и тут до меня дошло, сколько кода сломается)) Добавление async/await в число операторов сломало кучу кода (kombu.async пришлось переименовать, например). Сколько кода сломается тут?
     
     
  • 3.79, Аноним (242), 02:19, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Нисколько, не выдумывайте. Я могу придумать несколько причин почему: никто не экономит 2-3 символа, import from писать моветон, называть переменные и функции так ещё более моветон -- лучше уж однобуквенные. При этом исправить это не такая уж и проблема.
     
     
  • 4.114, Аноним (112), 09:25, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, всё-таки за однобуквенные нужно сразу руки отрывать, прямо от жопы
     
     
  • 5.185, Аноним (242), 12:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Хаха, нет. А ты, наверное, из тех, кто верит во всё, что ему рассказывают.

    Что касается re.match, то применимость у него весьма ограниченная, куда чаще наверное используют re.search -- так что исправлять много не придётся. Других примеров я не знаю.

     
  • 2.179, Аноним (179), 12:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Единственный годный коммент в обсуждениях. Что с обратной совсемстимостью
     
     
  • 3.224, www2 (??), 15:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мне кажется, или это изменение тянет на то, чтобы стать поводом создать четвёртный питон?
     
     
  • 4.293, Аноним (293), 03:23, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Четвертый питон уже в планах там будет JIT и async/await на чистом C
     
     
  • 5.308, Ароним (?), 10:21, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    JIT - зло которое надо искоренять!
     

  • 1.28, Аноним (28), 22:25, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А запятые в питоне не в моде что ли? Поясните, почему пайп?
     
     
  • 2.33, Аноним (33), 22:33, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы на bash было похоже конечно же
     
  • 2.35, Аноним (9), 22:39, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что с запятыми получится tuple
     
     
  • 3.42, Онаним (?), 22:52, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    tuple - это нормальное состояние во время разработки данного синтаксиса.
     
  • 3.45, Аноним (15), 23:13, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну, с палками же не получается побитовое "или"... почему с запятыми должен получиться тупл?! ты хоть глянь, что в питоне палка означает.
     
     
  • 4.81, Аноним (9), 03:33, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И что она там означает?

    >>> class myint(int):

            def __or__(self,other): return 42
    >>> myint(10)|myint(20)

    42

     
     
  • 5.128, Аноним (15), 09:49, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Покажи, что там и как перегрузили в case... И не пиши 100 раз одну и ту же чушь.
     
  • 5.131, Сишник (?), 09:53, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > И что она там означает?
    > __o__

    фу такое писать

     
     
  • 6.222, Аноним (15), 15:40, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__ ___подчёркиваний___, чтобы без линейки не прочитать код.
     
     
  • 7.231, Аноним (242), 16:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это приватные методы.
     
     
  • 8.282, Аноним (15), 00:30, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно приватные, без цензуры такое вообще нельзя показывать __o__... текст свёрнут, показать
     
  • 7.234, Аноним (-), 16:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__ ___подчёркиваний___, чтобы без линейки не прочитать код.



    #define __alias(symbol)                 __attribute__((__alias__(#symbol)))
    ...
    # define __compiletime_error(message) __attribute__((error(message)))
    ..
    struct uhid_create2_req {
    __u8 name[128];
    __u8 phys[64];
    __u8 uniq[64];
    __u16 rd_size;
    __u16 bus;
    __u32 vendor;
    __u32 product;
    __u32 version;
    __u32 country;
    __u8 rd_data[HID_MAX_DESCRIPTOR_SIZE];
    } __attribute__((__packed__));



    Ох уж эти опеннетные "списалисты" по всему на свете ...

     
     
  • 8.284, Аноним (15), 00:33, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ты же поди в курсе, что значит питон в название питона Списалисты списали мно... текст свёрнут, показать
     
     
  • 9.290, Аноним (-), 01:30, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Как ты ловко, прям в прыжке, переобулся ... текст свёрнут, показать
     
  • 7.326, Аноним (326), 07:22, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > это подчёркивает смысл языка. Вообще пихтонисты ___любят___ _писать_ __много__
    > ___подчёркиваний___, чтобы без линейки не прочитать код.

    Это они где-то прочитали что в C идентификаторы с _ и тем более __ - системные, reserved, не используйте. Максимализм взнегодовал и стали __назло_бабушке__ _отмораживать_ ___уши___.

     
  • 7.334, OzWMTjhctYyY0jBcJyMQ (?), 18:37, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    c sdl посмотри для просветления ну и керрегана почитай
     
  • 2.41, Онаним (?), 22:51, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Потому что без хорошего раскура пайпа такой синтаксис не лепится.
     
  • 2.72, Zulu (?), 01:42, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо чтоб избежать неоднозначностей с
    match a,b:
      case 1,2:
        pass
     
     
  • 3.130, Аноним (15), 09:51, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это <белый лис>, товарищи... Язык (нет, даже не язык уже... что-то непотребное) скатывается в какой-то брейнфак, где без компиляции пары экранов невозможно понять назначение видимого.
     
  • 2.80, Ordu (ok), 02:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пайп логичен. Он читается программистом как "или".
     
     
  • 3.107, n00by (ok), 08:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому программисты и пишут:

    match x with
    | 401 | 403 | 404 -> ...
    | _ -> ...

    https://www.opennet.dev/openforum/vsluhforumID3/123233.html#43

    Осталось понять, зачем тут case.

     
  • 3.117, Аноним (160), 09:32, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это поколение "программистов" спрашивать не буду. Они в руках словаря не держали, пользовались для перевода интернетом, нужные ассоциации в мозгах не образуются. А ваше мнение мне интересно.

    Есть ли у вас ассоциация оператора выбора с выбором в словаре? И есть ли ассоциация возможности реализации выбора с помощью типа данных словарь?

     
     
  • 4.142, Ordu (ok), 10:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле тебе поколение хипстеров ближе Я тоже очень не люблю старпёров, но как... большой текст свёрнут, показать
     
     
  • 5.164, Аноним (160), 11:08, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы меня не поняли совсем 1 Не надо в Python тянуть конструкции с других языков... большой текст свёрнут, показать
     
     
  • 6.169, Ordu (ok), 11:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И чё Во-первых, какое мне дело, до этих особенностей python а Это относится к ... большой текст свёрнут, показать
     
     
  • 7.174, Аноним (160), 11:57, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Операторы match и case для python не нужны и ОЧЕНЬ вредны: https://www.askpython.com/python/python-switch-case-implementation
     
     
  • 8.192, Ordu (ok), 12:59, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И что Во-первых, там написано про оператор выбора, а не про паттернг-матчинг, в... текст свёрнут, показать
     
  • 5.165, Аноним (160), 11:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    PS: передавайте всем лисперам, что их Lisp - говно, как и JIT.
     
     
  • 6.170, Ordu (ok), 11:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я конечно передам, но, боюсь, им не интересно твоё мнение.
     
     
  • 7.172, Аноним (160), 11:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мне не интересно их мнение. Передай факт: лисп требует выделение оперативной памяти в режиме WX, а это осень плохо. Именно по этому у меня нет прог на лиспе, а так функциональный язык интересен.
     
     
  • 8.194, Ordu (ok), 13:02, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Что за режим WX Это как-то связано с wxWidgets ... текст свёрнут, показать
     
     
  • 9.208, PnD (??), 14:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Голосом старого глухого мафиози из Пса-призрака 8212 Он сказал W X wri... текст свёрнут, показать
     
     
  • 10.229, Ordu (ok), 16:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Глупости Lisp у WX не поможет Lisp не различает данные и код на гораздо более ... текст свёрнут, показать
     
     
  • 11.327, Аноним (326), 07:24, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А эта фишка не становится багом при untrusted input А то вон в bitmessage автыр... текст свёрнут, показать
     
     
  • 12.333, Ordu (ok), 08:39, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле Если ты сделаешь eval read my-line-buffered-socket Да, это может ... текст свёрнут, показать
     
  • 2.320, Аноним (320), 03:02, 12/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для возможности писать так Point(1|0,1|0).
     

     ....большая нить свёрнута, показать (35)

  • 1.32, Zitz (?), 22:31, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    JavaScript поадекватнее смотрится.
     
     
  • 2.67, Аноним (67), 01:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Хорошая шутка)
     
     
  • 3.203, йо ж (?), 14:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    да уже почти не шутка :/
     
     
  • 4.230, Брат Анон (ok), 16:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это всегда будет шуткой
     
     
  • 5.237, йо ж (?), 17:01, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "борьба была ровна". до сих пор. но змий, кажется, таки начинает побеждать.
     
  • 2.263, Аноним (262), 22:31, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В нем пропозал сопоставлния с образцом все еще в stage 1.
     
     
  • 3.294, Аноним (293), 03:24, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Алло докомпозиция уже давно с 12 версии.
     
     
  • 4.317, Аноним (316), 19:34, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Но это не сопосталвение с образцом
     

  • 1.51, Плохой Танцор (?), 23:34, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Новшества в Питоне всегда понятны и лаконичны, а также ясны в плае их использования, чего нельзя сказать о новшествах в Си++, которые ни понять, ни прочитать, ни применить без примера "того парня со стэковерфлоу" - невозможно.
     
     
  • 2.56, Аноним (15), 23:46, 09/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажи, почему оператор побитового "или" внезапно стал сепаратором?! Почему не запятая?
     
     
  • 3.66, Аноним (66), 00:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.python.org/dev/peps/pep-0635/#or-patterns

    There was some discussion on whether to use the bar symbol | or the or keyword to separate alternatives. The OR pattern does not fully fit the existing semantics and usage of either of these two symbols.

    И далее по тексту, там всё написано, почему не or или запятая или ещё что-то. Что же тебе помешало это прочитать?

     
     
  • 4.132, Аноним (15), 09:54, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты сам-то читал? В результате дискуссии выбрали тупейший вариант, что не удивительно в современном мире.
     
     
  • 5.239, йо ж (?), 17:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    диктатора на них нет.
     
     
  • 6.328, Аноним (-), 07:25, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > диктатора на них нет.

    Диктатор сам уже задолбался с того что заварил.

     
  • 5.298, Аноним (66), 06:07, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ты так считаешь, а другие люди по другому. С чего ты взял что ты прав?
     
  • 3.116, Аноним (112), 09:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Расскажи, почему у тебя оператор "или" стал сепаратором, если он всё ещё работает в данном примере как или
     
     
  • 4.134, Аноним (15), 09:55, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты хоть в курсе, что такое "перечисление"?
     
  • 2.85, Аноним (85), 03:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты прав, С++ объективно сложнее, и постоянно усложняется.
     
     
  • 3.136, Аноним (15), 09:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Растаманы уже закопали сплюснутых :) Все те дифирамбы, что пели сплюснутые про безопасность плюсов, про управляемые типы, про автоматические конструкторы/деструкторы... Всё это оказалось туфтой со слов растаманов. Колесо провернулось, "плюсы" в байках заменили на "раст", снова поём прошлые дифирамбы.
     
     
  • 4.318, Аноним (316), 21:00, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >  про автоматические конструкторы/деструкторы... Всё это оказалось туфтой со слов растаманов.

    Ты сам себе противоречишь

     
  • 2.90, Аноним (90), 05:18, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    плюсы не для говнокодеров
     
     
  • 3.103, Аноним (-), 08:33, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    даже php не для тебя
     
     
  • 4.108, Аноним (90), 08:48, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ты опять таблетки забыл принять?
     
  • 3.212, Аноним (-), 15:10, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    кодить или шкодить? выбирай!
     

  • 1.55, Аноним (156), 23:44, 09/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Б****! Зачем это сопоставление с образцом в питоне? Теперь обезьянки вместо использования хеш-таблиц будут писать завуалированные лестницы из аналогов strcmp.

    Чего в питоне реально не хватало - это оптимизированных предрасчитанных замороженных словарей.

     
     
  • 2.84, Аноним (84), 03:45, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты лучше за себя думай, а не за обезьянок.
     

  • 1.61, nelson (??), 00:21, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прям скриптовый язык "особого назначения" - всё имеется в наличии, но реализовано, мягко говоря, так себе.
    Пайтон - это как тюнингованный старый драндулет, батарейки там в комплекте, все дела, но едет всё равно хреново.

    > Реализация во многом напоминает оператор "match", предоставляемый в языках Scala, Rust и F#

    Scala - это вполне адекватная замена пистона.

     
     
  • 2.100, Аноним (-), 08:28, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > пистона

    вставь его себе в анус и делись впечатлениями

     
  • 2.154, Аноним (156), 10:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, graalpython - адекватная замена pystonа.
     

  • 1.64, qqqqqq (?), 00:48, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С одной стороны ну и чем теперь птон не эрланг
    С другой да ну нафиг
     
     
  • 2.265, Аноним (262), 22:36, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > С одной стороны ну и чем теперь птон не эрланг

    После добавления оператора сопоставления с образцом язык превращается, язык превращается, превращается в эрланг?. На самом деле нет.

     

  • 1.71, Аноним (69), 01:36, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Короче, вырисовывается перспектива, точнее три:
    1. Форкнуть нужный себе питон и пилить в нужную сторону
    2. Спрыгнуть с питона. Это май вэй, но мне без следующего пункта ближайший год не обойтись:
    3. Продолжать накидывать mvp на питоне, а потом уже переписывать на более стабильных исыках.
     
     
  • 2.122, Аноним (160), 09:38, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я себе форкнул, може раза вать вместе. Но проблема вырисовывается: case оператора у нас не предвидится и новый код работать не будет...
     
  • 2.147, Аноним (156), 10:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Продолжать накидывать mvp на питоне, а потом уже переписывать на более стабильных исыках.

    Собственно питон так и позиционируют.

     
  • 2.266, Аноним (262), 22:37, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Белка истеричка? Не нравится оператор - не используй. Настрой линтер в проекте у себя если надо.
     
     
  • 3.291, Аноним (15), 01:31, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Не нравится оператор - не используй.

    Если б он не занимал места в пространстве имён...

     

  • 1.73, Аноним (-), 01:45, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Надеюсь эти операторы реализованы на безопасном write only языке типа раст
     
  • 1.74, Аноним (74), 01:49, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ещё бы immutable values (как обычная переменная, но присвоить можно только один раз) наконец добавили - цены бы им не было.
     
     
  • 2.137, Аноним (15), 10:02, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лет через 50 сделают, если case рожали 30 лет.
     
  • 2.267, Аноним (262), 22:39, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не все так просто: возникает immutable переменная на mutable объект. Короче все сложно.
     

  • 1.83, Аноним (-), 03:44, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Python развивается, хейтеры бомбят! Таков путь. ;)
     
     
  • 2.89, Аноньимъ (ok), 05:12, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    It evolving backwards.
     
     
  • 3.101, Аноним (-), 08:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    причем тут твои родственники?
     
     
  • 4.292, _smit_ (?), 02:08, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А Ваши как видны!
     
  • 2.138, Аноним (15), 10:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > развивается

    case рожали 30 лет... Это не развитие, это гниение.

     
     
  • 3.150, Аноним (156), 10:23, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Switch/case - антипаттерн. Правильное решение для любого языка - look-up-таблица. Хеш, или не хеш, но LUT.
     
     
  • 4.204, Аноним (15), 14:22, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    LUT слишком сложен для школьников, они понятия не имеют о безболезненном редактировании. Для начала хотя бы задумались, почему у них появилась портянка кейса в коде? Почему в портянке появились какие-то константы?! Два самых главных вопроса: "почему тут?" и "почему это?". Но у школьников нет ответа.
     
  • 4.329, Аноним (-), 07:32, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Switch/case - антипаттерн. Правильное решение для любого языка - look-up-таблица. Хеш,
    > или не хеш, но LUT.

    LUT не обязательно эффективен на современном процессоре, где скорость проца сильно быстрей оперативы. Но когда вебмакак интересовали такие глупости как оптимизация кода?

     
  • 3.189, Аноним (160), 12:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    case для Python - ненужное зло!

    https://www.opennet.dev/openforum/vsluhforumID3/123233.html#164

     
  • 3.211, Аноним (-), 15:08, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пока у тебя там подгнивает, я зарабатываю 200к в месяц на питоне, не напрягаясь)
     
     
  • 4.217, Аноним (15), 15:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Охотно верю. А я вчера 4 битка продал не напрягаясь.
     
  • 4.330, Аноним (-), 07:32, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Пока у тебя там подгнивает, я зарабатываю 200к в месяц на питоне,
    > не напрягаясь)

    200к чего? Ржублей? А эт разве много для прогера?

     

  • 1.87, Аноним (87), 04:29, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Какой-то чемпионат по гонкам на инвалидных колясках.
     
     
  • 2.102, Аноним (-), 08:31, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    и так под каждой новостью, это опеннет, детка
     

  • 1.91, Аноним (-), 05:23, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    За языком не слежу. Слышал..., короче, что там с оператором присаивания := Гвидо его внёс в язык, или нет?

    Гвидо молодец понимает, что придуманая == программистами из IBM так и не катит. Впервые == насколько я знаю этот оператор появился в Fortran -е.

     
     
  • 2.95, Аноним (95), 07:35, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В версии 3.8 появился. Но ёто не то же самое, что ==
     
     
  • 3.151, Аноним (156), 10:25, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тем не менее он на хрен не нужен.
     
     
  • 4.173, Аноним (95), 11:52, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если быть честным, таки да, ни разу ещё им не пользовался
     
  • 4.186, Аноним (-), 12:38, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кафедральные пердуны и академики с тобой не согласны.
     
  • 2.331, Аноним (-), 07:34, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > За языком не слежу.

    ...
    > Гвидо молодец понимает,

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

     

  • 1.92, Аноним (92), 06:58, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Для тех, кто не осилил словарь...
    🤷🤦
     
  • 1.93, Аноним (93), 07:12, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А это опять угробит совместимость? :) И, главное, синтаксис такой что вы даже после поллитра глядя на код не одуплите - валидное это сочетание или нет.
     
     
  • 2.126, Аноним (160), 09:46, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для этого все и делается: гробить совместимость, усложнять и замусоривать синтаксис. Так тормозят и гробят развитие Python!

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

     
     
  • 3.268, Аноним (262), 22:41, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Николая Вирт учил

    Где он теперь и его поделия?

     
     
  • 4.272, Аноним84701 (ok), 23:10, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Где он теперь

    Как минимум, вот тут:
    https://amturing.acm.org/byyear.cfm
    > CHRONOLOGICAL LISTING OF A.M. TURING AWARD WINNERS

    Еще там Дийкстру, Кнута, Ричи & Томпсона найти можно.

    А вот анонима там что-то не видать, увы и ах :(

     
     
  • 5.337, Аноним (337), 14:15, 16/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Для меня от этого выхлопа 0. Паскаль мертвый академический язык, а Вирт старый пердун, который только может всем рассказывать как надо было, но не смог.
     
  • 4.323, Аноним (-), 06:45, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Где он теперь и его поделия?

    Я на его поделиях програмить учился. И хотя я предпочел в результате си, т.к. переубеждать паскаля на тему того что я на самом деле хотел в системщине очень уж задалбывает, он таки приучил меня к хорошему. Глядя на то как некоторые сишники раздолбайствуют - я понимаю почему учиться на паскале было хорошей идеей :)

     
     
  • 5.338, Аноним (337), 14:16, 16/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    К чему хорошему он тебя приучил?
     

  • 1.94, Аноним (95), 07:26, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О, наконец-то завезли, а то надоели уже эти скучные if...else...
     
     
  • 2.124, Аноним (160), 09:42, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    case -> выбор по ключу -> тип словарь -> json

    В твоем мозгу ссоциации операции выбора с поиском перевода слова в словаре нет?

     
     
  • 3.182, Аноним (95), 12:27, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как быть, если мне нужна деструктуризация? Твой мозг вообще имеет представление, что это? И если да, то интересно, как будет выглядеть реализация при помощи словарей?
     
     
  • 4.283, Аноним (283), 00:30, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    a = {
        1: ("b", "c"),
    }

    d, e = a[1]

     
     
  • 5.285, Аноним (15), 00:42, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нууу... Это слишком просто! Тут даже ключевых слов нету! :)))
     
     
  • 6.300, Аноним (95), 08:55, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И не говори, а вот так ещё проще:

    d, e = "b", "c"

    Зачем здесь словарь вобще...

     
  • 5.299, Аноним (95), 08:55, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну нет, это совсем не то. Предположим, у меня есть кортеж t = (a, b, c) и переменная r = 0, и мне нужна примерно следующая логика: если a == 0, то r = b + c; если b == 0, то r = a - c, если c == 0, то r = b * c, во всех остальных случаях r = a % b * c. Интересно мнение экспертов о том, как запихнуть её в словарь.
     

  • 1.106, Аноним (106), 08:47, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот это годно. Жаль на питоне не пишу
     
  • 1.118, еман (?), 09:32, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    для ещё лучшего улучшения читаемости, лучшие питонисты рекомендуют перейти на C/C++/D/Rust/Go
     
     
  • 2.152, Клыкастый (ok), 10:26, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На D к сожалению уже никто не советует переходить. C успел попой стул занять, С++ смог, Rust и Go, как ни крути, осилили. А вот с D не получилось совсем. Вот точно мимо стульев.
     
     
  • 3.157, еман (?), 10:34, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    о чём это ты? D живой и ещё как. я, вот, Go бросил и перехожу на D аж бигом и тащу его в ынтирпрайз всеми силами
     

  • 1.127, Аноним (160), 09:49, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > для конечного принятия решения в качестве арбитра был привлечён руководящий совет, который сумел прийти к консенсусу.

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

     
     
  • 2.129, Аноним (160), 09:50, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    s/руки/лапы/
     
  • 2.332, Аноним (332), 07:38, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Эти маркетологи, юристы, манагеры и прочие твари гробят творения людей везде куда
    > дотянутся их руки.

    Ничего, их уже прибрал к рукам гугол.

     

  • 1.133, Некто с Марса и Сникерса (?), 09:54, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А это традиционный путь развития python, всегда новые конструкции из других языков включались и ранее, совсместимость это не ломает и не приводит к большим проблемам производительности. Правда python становится уж очень синтаксически сложным языком.
     
     
  • 2.140, Аноним (15), 10:07, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > совсместимость это не ломает

    Боюсь тебя расстроить... Но, может, сам догадаешься?

     
     
  • 3.148, Некто с Марса и Сникерса (?), 10:22, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Меня трудно расстроить. Под совместимостью обычно понимают возможность исполнения кода, написанного для старых версий в новых версиях интерпретатора. Обеспечить обратный процесс можно, но только путём заморозки развития языка. Или я что-то не так понимаю?
     
     
  • 4.168, Аноним (160), 11:33, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://www.opennet.dev/openforum/vsluhforumID3/123233.html#164
     
     
  • 5.193, Некто с Марса и Сникерса (?), 13:00, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я эту тему про словари вместо case ещё в со времён 2-го питона регулярно читаю.
    Лично мне сase вообще не сдался, но ведь разные люди  регулярно выступают с этой идеей.  Ломает это совместимость-нет. Мешает это использовать словари в качестве переключателя условий - нет.  В чём ваша проблема? Новые фичи совсем не обязательны для написания работающего кода.
     
  • 4.202, Аноним (15), 14:16, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я тебя даже немного натолкну на мысль: появляются новые ключевые слова...
     

  • 1.139, economist (?), 10:04, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Чтения тутошних обсуждений python-новостей - настоящий праздник!

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

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

    А по теме - elif ненамного хуже, но если они идут вложенные ёлочкой - читаемость страдает. А она (читаемость) в python не просто во главе угла, она же породила "идеальные" по реализации конструкции списки/срезы/генераторы/лямбды, которых больше нет ни в одном языке.

    Писать MVP на сабже и переписывать - тоже годно, но нужно не всем. Есть свои метрики кодинга на сабже - они опережают в 2-4 раза другие ЯП. Ровно столько же и меньше объем кода в символов (за вычетом пробелов, друзья!)  

      

     
     
  • 2.144, Онаним (?), 10:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да, синтаксис сабжа настолько притягателен, что я даже править в этом больше двух строк стремаюсь - проще и быстрее найти альтернативу или самому написать.
     
     
  • 3.206, economist (?), 14:47, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В красоте однострочников посоревнуемся? 1-строчник - чтобы нивелировать разницу в ЯП. Начну:

    Задание1: x = ' 123 БОЛЬШИЕ_м4ал5ен6ькие78 9' # -> '123456789'

    На Python: print(''.join(i for i in x if i.isdigit()))  

     
     
  • 4.215, Аноним (15), 15:22, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тебе Перл показать или так поймёшь?
     
     
  • 5.218, economist (?), 15:31, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Покажи. Мы ведь оцениваем красоту, а не краткость.
     
     
  • 6.251, Аноним (15), 20:02, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    "однострочник" - это понятие красоты или краткости?
     
  • 4.245, Аноним (245), 19:01, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > В красоте однострочников посоревнуемся? 1-строчник - чтобы нивелировать разницу в ЯП. Начну:
    > Задание1: x = ' 123 БОЛЬШИЕ_м4ал5ен6ькие78 9' # -> '123456789'
    > На Python: print(''.join(i for i in x if i.isdigit()))




    ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
    findall(D,(member(D,X),char_type(D,digit)),Ds), format('~s',[Ds]).                                                                        
    123456789

    ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
    include([In]>>char_type(In, digit), X, Ds), format('~s',[Ds]).
    123456789




     
     
  • 5.253, Аноним (15), 20:06, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это явно красивее, чем блевотина экономиста. Тут хоть суть подчёркивается задачи.
     
     
  • 6.255, economist (?), 20:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хамите...
     
     
  • 7.273, Аноним (15), 23:11, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Поплачь - легче станет.
     
  • 5.254, economist (?), 20:23, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если мы не выводим результат print(), то на Python еще короче и читаемей:

    ''.join(i for i in x if i.isdigit())


    ''.join(filter(str.isdigit, x))


    map(int, re.findall('\d+', x))


    ''.join(i for i in x if i.isdigit())


    ''.join(filter(lambda d: x.isdigit(x)


    re.sub('\D', '', x)


    re.findall('\d+', x)


    7 сравнительно разаных способов, и это в языке, Дзен которого вещает про один и только один лучший способ. Богатство конструкций языка лично меня впечатляет. Было б здорово чтобы и другие высказались :-)  


     
     
  • 6.261, Аноним (261), 22:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 7 сравнительно разаных способов,

    И со сравнительно разным результатом ;)
    >>> re.sub('\D', '', x)

    '123456789'
    > map(int, re.findall('\d+', x))
    >>> [x for x in map(int, re.findall('\d+', x))]

    [123, 4, 5, 6, 78, 9]

     
     
  • 7.274, Аноним (15), 23:15, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > И со сравнительно разным результатом ;)

    Вот так экономисты и пишут... туфту. Зато гонору...

     
     
  • 8.309, economist (?), 13:40, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    С регулярками был сознательный вброс, каюсь, но по другому на соревнование никог... текст свёрнут, показать
     
     
  • 9.324, Аноним (-), 06:47, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Прикольные отмазки у питономакак Соревноваться с тобой в программировании - то ... текст свёрнут, показать
     
  • 5.264, Аноним (-), 22:32, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
    > findall(D,(member(D,X),char_type(D,digit)),Ds), format('~s',[Ds]).
    > 123456789




    ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
    forall((member(D,X), is_digit(D)), format('~c',[D])).
    123456789





    > ?- X=" 123 БОЛЬШИЕ_м4ал5ен6ькие78 9",
    > include([In]>>char_type(In, digit), X, Ds), format('~s',[Ds]).
    > 123456789




    include(is_digit, X, Ds), format('~s',[Ds]).



    С "грязной побочкой":



    member(D,X), is_digit(D), format('~c',D), fail.
    123456789


     

  • 1.155, Аноним (155), 10:27, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Жаловаться поздно. Где вы были, когда принимали решение?
     
     
  • 2.167, Аноним (160), 11:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да мы на решение этих "советов" ложим, а сами эти "советы" вертим!

    Я себе Python уже форкнул.

    Призываю всех вменяемых бойкотировать новый синтаксис! Иначе ваши поделки в моем Python-е не пойдут..

    Объясняю еще разок что жидо-масоны делают: внедряют в "советы" своих и пару своих в здоровое сообщество. Вносят предложения systemd/case/shit. Агентура в сообществе бунтует и кричит хотим "овно". Здоровая часть говорит "овна" нам не надо. Консенсуса нет. Тогда контролируемый жидо-масонами "совет" принимает решение добавить "овна".

     
     
  • 3.176, Аноним (176), 12:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слишком громкий слог для банального распила. Надо просто не пользоваться подобным г-ном, а наивный молодняк предупреждать что через пару лет все твои мегазнания с кодом превратятся в тыкву и будешь самдурак что не послушал. Мне хватило ровно три раза вляпаться чтоб это понять.
     
     
  • 4.196, Аноним (242), 13:13, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хм, странно. Мои знания по питону 2.2 без проблем позволяют мне писать код для 3.8+. Минимум затрат и я считаю, что все изменения к лучшему -- всё меньше возни и всё больше всего встраивают непосредственно в язык. Если ты так и не освоил ничего ни разу, то естественно, тебе покажется что тебя заваливают всё новым и новым мусором, когда на деле это не мусор, а средства упрощения жизни реальных программистов (причём, только наиболее востребованные и максимально прилизанные).
     
     
  • 5.210, Аноним (210), 15:03, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ыкспертное мнение от научился петону 3.8+ , приходи лет через цать и повтори мне это же
     
     
  • 6.214, Аноним (242), 15:17, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ыкспертное мнение от научился петону 3.8+ , приходи лет через цать и
    > повтори мне это же

    Некоторые изменения были между 1 и 2, но это простите 20 лет назад было. И если вы не застали реалии программирования в 80-90х, я имею сообщить, что по сегодняшним стандартам качества тогдашняя индустрия была абсолютным дном. При переходе на 3 могут быть неожиданности, только если ты не успел разобраться с тем, что и почему поменяли во 2. И если бы не поменяли, питон сегодня не оказался бы на своём месте. А 3 уже дольше 2 существует. Вот в 4 обещают многое сломать, но я думаю особых проблем тоже не вызовет. За 20 лет может многое поменяться, главное не стоять на месте.

     
     
  • 7.216, Аноним (242), 15:24, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Дольше чем 1 и 2. Скоро уже будет дольше чем вместе взятые. За всё это время всего пару раз насыпали новых ключевых слов и сломали совместимость где-то там с чем-то там. Уж с чем-чем, а с совместимостью у питона сегодня всё превосходно (несмотря на безосновательные наговоры завистников, совершенно не разбирающихся в вопросе).
     
     
  • 8.344, Аноним (344), 22:20, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А какие гендерно-расово-оскорбительные ключевые слова собираетесь выпиливать И ... текст свёрнут, показать
     
  • 4.339, Аноним (337), 14:19, 16/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мегазгания по питону? Ну вообще-то через 15 минут знакомства с ним уже можно спокойно писать и понимать код.
     
     
  • 5.343, Аноним (344), 22:10, 17/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и я говорю, язык для 95%. И его развитие определяется этими 95%.
     
  • 2.177, Аноним (176), 12:11, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Где вы были

    учили новый синтаксис от похапе . ничего в голове не осело но вроде бы был горячий чай

     

  • 1.178, Аноним (178), 12:12, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пыхтон за разум взялся? Все равно он не сравнится с божественной сишечкой.
     
     
  • 2.183, Аноним (95), 12:29, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лисп же божественный, писали тут в других тредах, сишечку надо по-другому как-то назвать, или нет?
     
     
  • 3.187, Аноним (160), 12:42, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лисп красив как язык. Но за работу с памятью, лисп можно назвать говном! Язык C хоть теоретический шанс дает написать программиста программу корректно работающую с памятью. А лисп требует WX как и JIT.
     
     
  • 4.200, Аноним (-), 13:45, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Лисп красив как язык. Но

    Это между какими кавычками ты там увидел красоты ? Прикол всех этих лиспов в простоте реализации, ты напиши сначала свой лисп и свой си и подумай почему си запарился делать.

     
     
  • 5.325, Аноним (-), 06:48, 14/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно, tcc не так уж и запарился. Вот хорошую кодогенерацию под кучу архитектур и оптимизации - это да, запара. Но без этой запары быстро, компактно и эффективно не будет. Хоть там что.
     

  • 1.180, ИмяХ (?), 12:22, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Наконецто читаемость питона доросла до приемлемого уровня.
     
     
  • 2.188, Аноним (160), 12:43, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Наоборот упала: https://www.opennet.dev/openforum/vsluhforumID3/123233.html#160
     
     
  • 3.199, Некто с Марса и Сникерса (?), 13:21, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня есть формулировка, которая вас примирит.
    Читабельность Питона доросла до непристойно приличного уровня.
     
     
  • 4.213, Аноним (15), 15:14, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > доросла

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

     
     
  • 5.246, Аноним (9), 19:17, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Корни показывают отрицательный рост
     
     
  • 6.249, Аноним (15), 19:56, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Отрицательную проекцию вектора роста на вертикаль.
     
  • 4.248, Онаним (?), 19:52, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У меня есть формулировка, которая вас примирит.
    > Читабельность Питона доросла до непристойно приличного уровня.

    Непристойность питона доросла до читабельно приличного уровня.

     
     
  • 5.250, Аноним (15), 19:58, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Обросший питон непристоен приличной читабельности.
     

  • 1.260, Аноним (260), 22:20, 10/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > case _:

    Ого, какой синтаксис. Это же имя переменной, да? Вместо того чтобы переопределить старый добрый (не знаю как в питоне, а так-то он вполне добр) switch решили замусорить глобальную область видимости очередными кейвордами. Удовольствие на это смотреть - как на сисярп примерно.

     
     
  • 2.270, Онаним (?), 22:51, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    _: в данном выражении - это смайл.
    На бок прилёг.
     
     
  • 3.271, Аноним (15), 23:09, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +/
    И язык на полу - символ пихтона.
     
  • 2.275, Аноним (275), 23:36, 10/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Заодно поломают существующий код в котором применялся gettext. Там _() - это функция для перевода строки.
     
     
  • 3.297, Аноним (66), 06:01, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если вы _: от _() не отличаете это ещё не значит что все парсеры такие.
     
     
  • 4.305, Онаним (?), 10:03, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    _() - прилегший на бок циклоп
     
  • 4.306, Аноним (15), 10:04, 11/02/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > _: от _()

    Если ты сам думать не умеешь, помогу:

    def f():
      return 0
    f=1
    print(f())

    Ну что, догадался? И ещё немного на засыпку:

    def if():
    ой, SyntaxError какой-то...

    if=1
    блин, опять почему-то SyntaxError

    Понимаешь, что означает введение новых слов?

     

  • 1.301, mos87 (ok), 09:12, 11/02/2021 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

     ....ответы скрыты (3)

  • 1.336, via (??), 11:10, 16/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ... как они .... !
    Это вместо стандартизации cython  или nuitka в качестве штатного компилятора языка
     
  • 1.345, Аноним (242), 11:22, 26/02/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Короче, я смотрю, | aka union operator добавили в 3.9 для словарей и в 3.10 для тайпхинтов и проверки типов (вместо typing.Union). Так что больше не нойте -- всё нормально с case.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру