Есть ли способ обойти кодирование в Python без критериев табуляции, отступа и пробела? - PullRequest
7 голосов
/ 15 сентября 2008

Я хочу начать использовать Python для небольших проектов, но тот факт, что неправильно расположенная вкладка или отступ может вызвать ошибку компиляции, действительно действует мне на нервы. Есть какие-то настройки, чтобы отключить это?

В настоящее время я использую NotePad ++. Может быть, есть IDE, которая позаботится о вкладках и отступах?

Ответы [ 29 ]

42 голосов
/ 16 сентября 2008
from __future__ import braces
35 голосов
/ 15 сентября 2008

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

10 голосов
/ 16 сентября 2008

Emacs! Серьезно, использование «tab - это команда , а не символ », абсолютно идеально подходит для разработки на Python.

5 голосов
/ 15 сентября 2008

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

В моем случае я настроил UltraEdit & vim для использования пробелов вместо вкладок.

4 голосов
/ 15 сентября 2008

В настоящее время я использую NotePad ++. Является там может быть IDE, которая будет принимать уход за вкладками и отступами?

Мне понравилось pydev Расширения Eclipse для этого.

3 голосов
/ 15 сентября 2008

Нет, нет. Отступ - это синтаксис для Python. Вы можете:

  1. Используйте tabnanny.py для проверки вашего кода
  2. Используйте редактор с поддержкой синтаксиса, который выделяет такие ошибки (vi делает это, emacs, держу пари, что делает, а затем, большинство IDE тоже))
  3. (надуманный) напишите свой собственный препроцессор для преобразования скобок (или любых других разделителей блоков, которые вы любите) в отступ
3 голосов
/ 15 сентября 2008

pybraces

Это не поддерживается.

2 голосов
/ 15 сентября 2008

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

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

Список редакторов можно найти в викитоне Python, хотя он слишком утомителен: - http://wiki.python.org/moin/PythonEditors

Здесь уже есть вопрос, который пытается немного его уменьшить:

Может быть, вам следует добавить более конкретный вопрос: «Какой редактор Python или IDE вы предпочитаете в Windows - и почему?»

2 голосов
/ 15 сентября 2008

Я согласен с Джастином и другими - выберите хороший редактор и используйте пробелы, а не табуляцию для отступов, и пробелы становятся проблемой. Я только недавно начал использовать Python, и хотя я думал, что проблема пробелов будет настоящим раздражением, оказалось, что это не так. Для записи, я использую emacs, хотя я уверен, что есть и другие редакторы, которые одинаково хорошо справляются со своей работой.

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

2 голосов
/ 15 сентября 2008

Можно написать препроцессор, который принимает код со случайным отступом с использованием псевдопифонных ключевых слов, таких как «endif» и «endtime», и корректно создает отступ. Я должен был сделать это при использовании python в качестве «ASP-подобного» языка, потому что само понятие «отступ» становится немного размытым в такой среде.

Конечно, даже с такой вещью вы действительно должны разумно делать отступы, и в этот момент конвектор становится лишним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...