Многие программисты, впервые столкнувшись с Python, сразу же откладывают значение пробела. Я слышал множество причин, по которым это неудобно, но я никогда не слышал жалоб от программиста на Python.
Конечно, я не встречал много программистов на Python, так как я провел свою карьеру в мире Java.
Итак, мой вопрос к тем из вас, кто участвовал в большом проекте Python (более 3 месяцев, причем Python был основным используемым языком): вы считаете проблему с пробелами неудобной и постоянно раздражающей? Или это было не проблема, когда вы попали в поток?
Я не задаю вопрос, потому что я за или против Python, или за или против его использования пробела. Мне нравится Python, но я никогда не использовал его для чего-то большого.
Пожалуйста, не предоставляйте предположений, если у вас нет опыта работы с Python.
источник
Ответы:
Есть только один случай, когда я считаю, что пробел раздражает, и это при изменении существующего кода, чтобы блок кода становился более или менее отступом, чем раньше (например, добавление или удаление
if:
перед кодом). Когда вы пишете на таком языке, как C, вы просто добавляетеif
и пару скобок и (в Emacs, или я представляю себе хороший редактор) нажимаете Tab, чтобы редактор автоматически исправлял отступ. В Python вы должны сделать это самостоятельно. Конечно, есть ярлыки редактора, чтобы сделать это самостоятельно, так что это не так уж и плохо, но потеря избыточности налагает небольшую дополнительную нагрузку на программиста.В целом, это победа, хотя бы для предотвращения того, чтобы половина моего экрана была заполнена такими строками:
источник
C-c >
илиC-c <
. Вы все еще должны сделать это самостоятельно, хотя. Иными словами, поскольку пробельные символы и логика кода не являются избыточными, вы не можете просто выбрать гигантский блок и вызватьM-x indent-region
(или какой бы то ни было версией вашего редактора) отступ для всего этого «правильно».Я люблю значительные пробелы Python. Для меня это идеальный пример СУХОГО на синтаксическом уровне. Удобный для восприятия способ указать, где блок кода начинается и заканчивается, с отступом. Если вы хотите, чтобы ваш код был читабельным, вы должны делать отступы независимо от языка. Глупо заставлять программиста указывать эту информацию дважды, один раз для компилятора / интерпретатора и один раз для людей. Кроме того, отступ в C-подобных языках похож на комментарий: он предназначен для улучшения понимания, но его значение не обеспечивается компилятором / интерпретатором, и он может очень легко не синхронизироваться с реальным значением (где находятся фигурные скобки), запутывая, а не проясняя.
источник
Значительные пробелы на самом деле удобны для меня. Это заставляет меня печатать меньше. Он форматирует код аккуратно и довольно однозначно. Благодаря этому он делает код более читабельным.
(Мне также нравятся значительные пробелы в Haskell по тем же причинам.)
источник
Когда я впервые использовал python, пробельные символы были новыми и, следовательно, раздражающим ограничением.
Теперь я даже не замечаю этого. Я использую Python в течение 11 месяцев.
источник
Во-первых, я использую такие языки как Python, SQL и Java. Я люблю пробелы в Python - он меньше синтаксис и типизирует, и заставляет людей писать разборчивый, аккуратно отформатированный код. OTOH, я ненавижу многословие Java - настолько, что я фактически использую Python для генерации всего шаблона, который я должен написать на Java, что впечатляет всех моих коллег по Java, которые поражены моей производительностью.
Однако одно большое предостережение заключается в том, что при копировании / вставке кода из Интернета это часто приводит к смешанным пробелам и вкладкам, для очистки которых требуется дополнительный шаг, и я обычно ловлю только после исключения времени выполнения.
источник
highlight link RedundantSpaces Error | au BufEnter,BufRead * match RedundantSpaces "\t" | au BufEnter,BufRead * match RedundantSpaces "[[:space:]]\+$"
в своем vimrcЕсли программиста раздражает значение пробелов, он, вероятно, не станет программистом Python.
источник
Держу пари, что вы найдете значительное совпадение между людьми, у которых есть проблемы со значительным пробелом, и теми, кто не имеет опыта работы с хорошим текстовым редактором программиста, таким как Emacs, который обрабатывает большинство отступов без их участия.
В любом случае, после того, как вы усвоили Python, это больше не проблема; на самом деле его лаконичность и малое пространство на экране становятся большим преимуществом для удобочитаемости. Поскольку я использую в основном Python, я считаю, что языки, в которых больше избыточности (например, Java и C #), трудно дисциплинировать, чтобы они могли писать. Надевание скобок на код, отступ которого уже проясняет его структуру, действует мне на нервы.
источник
Для реального кодирования это совсем не неудобно, но на самом деле полезно (см. Ответ dsimcha).
Это может раздражать при работе с коммуникационными технологиями, которые не учитывают лидирующие пробелы (например, многие веб-форумы, не ориентированные на программирование, а также при встраивании кода Python в другой язык, такой как языки шаблонов HTML), даже если я вижу это как больше дефектов в инструментах, которые удаляют начальные пробелы, чем дефект в Python, правда, что избыточные языки, которые дважды выражают структуру кода, лучше приспособлены для обработки таких деструктивных сред (поскольку вы можете вставить код в редактор и автоматически переиндентировать на основе явных структурных маркеров или просто не заботиться о том, чтобы код выполнялся, а не читался людьми).
источник
Я не считаю пробелы раздражающими. Отсутствие или непоследовательность отступов меня очень раздражает на других языках. Я понимаю, что эта проблема - одна из проблем, которые должен решить стиль.
Python не является одним из моих основных языков.
Я считаю, что обработка отступов и табуляции в отступах раздражает время от времени. Это может вызвать проблемы при переключении редакторов с одного редактирования на другое или при редактировании кода, написанного кем-то другим. Это обычно тривиально, чтобы решить.
источник
Я пришел из C # / Javascript / XBase фона в произвольном порядке, и в моих увлечениях Python это вообще не для меня. Это как фигурные скобки на других языках - вот как это работает, вставьте вещи, как говорят правила, и высушите глаза - это мое отношение.
источник