А я что-то не могу обернуть свой мозг вокруг нужды вгонять питонные команды в параметры командой строки.
Вроде как получается мысль "Если хочется извращаться, то приходится извращаться"
В питоне просто сделали сознательный выбор сделать перенос строки и пробелы синтаксически значимыми элементами. Каковой имеет смысл в контексте, для которого это сделано, где в целом скорее помогает, чем мешает.
Вот я и говорю - криво, неисправимо криво. Питон изобретался не в вакууме - к тому моменту существовала куча языков, в том числе интерпретируемых скриптов, и было давно понятно, что нормальная интеграция с оболочкой опсистемы неизбежно потребуется.
Разработчик это понял, и, спохватившись, точку-с-запятой добавил, но... как показывает статья по ссылке, часть случаев работает, а часть - нет.
На мой взгляд очевидное решение, которое все это разрешает (и которое там приводится) - пайп. И оно, на мой взгляд, гораздо изящнее вставления питона в параметры, которое-таки явный корявый костыль (аналогичный добавлению ; в питон вместо перевода строки).
Второе, тоже очевидное, но сильно затрудненное корявостью и двухэтажностью добавления специальных символов в шелл - это эскейп. Эскейп приходится делать дважды, и беспокоиться о специальном значении символов на двух уровнях.
В общем, получается, что извращение в основном рождается не из питона, а из корявости решений предоставляемых шеллом.
Да, либо пайп, либо заменить цикл на list comprehension (если задача в общем виде позволяет). Но всё это костыли, которых можно было бы избежать, умей пациент нормально ходить.
Шелл был существенно раньше, значит его особенности стоило учитывать. Даже если постфактум.
no subject
Date: 2018-03-16 04:47 pm (UTC)Вроде как получается мысль "Если хочется извращаться, то приходится извращаться"
В питоне просто сделали сознательный выбор сделать перенос строки и пробелы синтаксически значимыми элементами. Каковой имеет смысл в контексте, для которого это сделано, где в целом скорее помогает, чем мешает.
no subject
Date: 2018-03-16 04:59 pm (UTC)Разработчик это понял, и, спохватившись, точку-с-запятой добавил, но... как показывает статья по ссылке, часть случаев работает, а часть - нет.
no subject
Date: 2018-03-16 06:06 pm (UTC)Второе, тоже очевидное, но сильно затрудненное корявостью и двухэтажностью добавления специальных символов в шелл - это эскейп. Эскейп приходится делать дважды, и беспокоиться о специальном значении символов на двух уровнях.
В общем, получается, что извращение в основном рождается не из питона, а из корявости решений предоставляемых шеллом.
no subject
Date: 2018-03-16 06:17 pm (UTC)Но всё это костыли, которых можно было бы избежать, умей пациент нормально ходить.
Шелл был существенно раньше, значит его особенности стоило учитывать. Даже если постфактум.
Ах, ну что мы, право, тут тряпками машем...