Есть ли подводные камни в использовании пробелов в Python? - PullRequest
3 голосов
/ 12 марта 2009

В настоящее время у меня никогда не было проблем с пробелами в Python (хотя я использовал его только в двух проектах, и я был единственным программистом). Каковы некоторые потенциальные подводные камни с пробелами и отступами в Python для тех, кто изучает язык?

Ответы [ 17 ]

1 голос
/ 12 марта 2009

Ловушки

  • Это может раздражать размещение фрагментов кода на веб-сайтах, которые игнорируют ваши отступы.

  • Трудно понять, как многострочные анонимные функции (лямбда-выражения) могут соответствовать синтаксису языка.

  • Трудно встраивать Python в файлы HTML для создания шаблонов так, как PHP или C # могут быть встроены в страницы PHP или ASP.NET. Но это не обязательно лучший способ разработки шаблонов.

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

Преимущества * +1021 *

  • Заставляет даже ленивых программистов создавать разборчивый код. Я видел примеры кода на языке скобок, который мне пришлось часами переформатировать, чтобы иметь возможность его читать ...

  • Программистам на Python не нужно часами обсуждать, должны ли фигурные скобки идти в конце линий в стиле K & R или в отдельных строках в стиле Microsoft.

  • Освобождает символы скобок для использования в словаре и заданных выражениях.

  • автоматически разборчиво

1 голос
/ 12 марта 2009

Если вы используете Eclipse в качестве вашей IDE, вы должны взглянуть на PyDev; он обрабатывает отступы и интервалы автоматически. Вы можете скопировать-вставить из смешанных источников, и он преобразует их для вас. С тех пор как я начал изучать язык, мне никогда не приходилось думать о расстоянии.

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

0 голосов
/ 12 марта 2009

Нет, я бы сказал, что это одна вещь, к которой я не могу найти никаких падений. Да, это, несомненно, раздражает некоторых, но это только потому, что у них другая привычка к их стилю форматирования. Изучите это рано, и это будет придерживаться. Посмотрите, сколько у нас обсуждений по стилю на таких языках, как C, Cpp, Java и тому подобное. Вы не видите тех (бесполезных, без сомнения) дискуссий о таких языках, как Python, F77 и некоторых других, упомянутых здесь, которые имеют «фиксированный» стиль форматирования.

Единственное, что является переменной - это пробелы и табуляции (может быть изменено с небольшими трудностями в любом хорошем редакторе), и количество вкладок пробелов составляет (может быть изменено без проблем в любом хорошем редакторе). Вуаля! Обсуждение стиля завершено.

Теперь я могу сделать что-то полезное:)

0 голосов
/ 12 марта 2009

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

Но после года серьезного использования языка я больше не могу писать плохо отступающий код на любом другом языке.

0 голосов
/ 12 марта 2009

Если вы используете emacs, установите длину жесткой вкладки 8 и длину мягкой вкладки 4. Таким образом, вы будете изменены на любые посторонние символы табуляции. Вы должны всегда использовать 4 пробела вместо табуляции.

0 голосов
/ 12 марта 2009

Единственная проблема, с которой я когда-либо сталкивался, - это небольшие неприятности, когда я использую код, который я написал до того, как решил, нравятся ли мне табуляции или пробелы, или вырезал и размещал код с сайта.

Я думаю, что большинство приличных редакторов в наши дни имеют опцию преобразования табуляции в пробелы и обратно. Textmate, безусловно, делает.

Кроме того, отступы никогда не доставляли мне никаких хлопот.

0 голосов
/ 12 марта 2009

Проблема в том, что в Python, если вы используете пробелы для отступа основных блоков в одной области файла и вкладки для отступа в другой, вы получаете ошибку во время выполнения. Это сильно отличается от точки с запятой в C.

Это не вопрос программирования, правда?

...