Вкладки и пробелы в программировании на Python

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

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

должен ли я сразу переключить редактор на вставку пробелов вместо вкладок или продолжать будет как раньше?

30 ответов


, потому что PEP-8 говорит нам использовать пробелы.


надоело гоняться за опечатками отступов ( 8 пробелов ? нет, 7-ой 9 ... ) Я переключил свои источники на "только вкладки".

1 == 1 уровень отступа, полная остановка

дело в том, что если вы хотите отобразить отступ в виде 4, 8 или Pi / 12 символов, просто измените настройки в текстовом редакторе, не связывайтесь с кодом.

(лично я использую вкладку ширины 4 символа... но некоторые предпочли бы 3 или 8 место, или даже использовать переменную ширину шрифты.)


-- Георг Брандл


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

Я использую вкладки. На вкладках нет места для ошибки с одним пробелом (если вы их видите). Проблема в том, что люди используют разные редакторы, и единственная общая вещь в мире: tab==indent, как указано выше. Какой-то парень приходит с ключом tab, установленным на неправильное количество пробелов или делает это вручную и делает беспорядок. Вкладки и использовать реальный редактор. (Этот это не просто противоречит PEP, это касается C/C++ и других пробелов-агностических языков).

/ шаги вниз от soapbox


моей основной причиной использования вкладок над пробелами является клавиша backspace. Если я на линии, и я хочу backspace-удалить отступ только на одной линии, я должен ударить backspace 4x, Если это были пробелы; в то время как мне нужно ударить только один раз, если это вкладка.

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

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

о! И использование клавиш со стрелками для навигации влево и вправо всегда боль в заднице, когда это пробелы.

UPDATE: Sublime Text 3 Теперь удаляет полную мягкую вкладку с помощью клавиши backspace; хотя навигация со стрелками по-прежнему утомительна.

Tabs vs. Spaces for Indentation

обновление: теперь я использую vscode а также написал расширение TabSanity для его решения backspace, delete и навигации со стрелками.

TabSanity Extension in Action


наиболее "подходящие для Python" способ-использовать 4 пробела на каждый уровень отступа. Однако интерпретатор Python распознает пробелы или табуляцию. Единственный gottcha это ты никогда не следует смешивать пробелы и вкладки, выбрать один или другой. Тем не менее, спецификация рекомендует пробелы, большинство разработчиков используют пробелы, поэтому, если у вас нет действительно веской причины не делать этого, я бы сказал, Идите с пробелами.


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

плюсы вкладок:

  • меньше нажатий клавиш, необходимых для отступа, удаления отступа и пересечения отступа. (Даже если ваша IDE имеет некоторую умность отступов, она никогда не будет так хороша, как вкладки.)
  • различные программисты могут использовать различные размеры дисплея вкладки, как они хотят.
  • вы никогда не можете иметь курсор "внутри" символа отступа. К примеру сказать вы копирование некоторых строк, с вкладками вы можете нажать неопределенно около начала строки, чтобы начать свой выбор, и вы получите всю первую вкладку. С пробелами вы, вероятно, пропустите первый символ пробела, если вы не попали в крошечную цель между ним и полем. Аналогично удалению отступа из строки, большинство редакторов не справляются с нажатием backspace хорошо, если курсор находится в середине символа отступа из четырех пробелов. Это, как правило, удалить один пробел. С вкладками он работает как ожидаемый.
  • согласованность с другими языками, поэтому вам не нужно настраивать редактор для использования, например, вкладки для C++/Java и пробелы для Python.
  • неправильные отступы могут быть более очевидными (т. е. дополнительная вкладка намного больше, чем дополнительное пространство).

минусы вкладок:

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

есть некоторые не-проблемы, которые раздуты некоторыми людьми:

  1. вы можете получить бродячие пробелы в вкладках, которые закручивают вещи: практически все IDEs / редакторы поддерживают визуализацию пробелов, и почти так же вероятно, что вы получите бродячие вкладки в пробелах! В любом случае, я не вижу, что это распространенная ошибка. Кроме того, большинство ошибки отступов будут пойманы Python, и хорошие IDEs должны быть в состоянии выделить различные отступы.

  2. вы не можете легко выровнять вещи с вкладками: это верно, если вы собираетесь для идеального выравнивания символов, но PEP-8 рекомендует против этого, и Python не играет хорошо с многострочными операторами в любом случае.

  3. У людей есть настройки разницы для размера отображения вкладки в их редакторах, поэтому ваш код будет выглядеть разные в разных местах: да, это на самом деле полезная функция вкладок.

Я начал использовать пробелы, чтобы быть совместимым с другим кодом Python, но, честно говоря, это достаточно неприятно, что я, вероятно, вернусь к вкладкам. Многое зависит от возможностей вашей IDE, но по моему опыту никакая поддержка IDE для отступов пространства не так хороша, как просто использование вкладок.

Если вы действительно не нравится несовместимо с большинство (предположительно не все!) Код Python, используйте вкладки и включите визуализацию пробелов и выделение отступов (если доступно). Самая большая причина для меня-простота выбора и (довольно значительное IMO) сокращение нажатий клавиш. Некоторые условности глупы.


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

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


используйте редактор, который позволяет вставлять пробелы до tabstop при нажатии клавиши TAB вместо вставки символа \t. А потом забудь об этом.


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


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


правила вкладок. Тот же аргумент для вложенных циклов, и вы хотите вернуть внешний цикл "назад" 1 уровень. Совет: Если вы хотите преобразовать старый код python с пробелами во вкладки, используйте утилиту TabOut, доступную в качестве исполняемого файла наhttp://www.textpad.com/add-ons/.


Я очень сильно чувствую, что независимо от исторического соглашения вкладки просто лучший выбор и должны заменить пробелы в каждой будущей строке кода Python. Как вышвырнуть некомпетентного тирана. Мое обоснование этого:simplicty как основное значение. Использовать два или четыре символа для семантической задачи одного? Нет оправдания за пределами традиции, ИМО.


когда я впервые изучал Python, меня немного отпугнула идея значительного белого пространства, так как большинство языков для его использования негибки. Тем не менее, я был впечатлен способностью Python понимать различные стили отступов. При рассмотрении того, какой стиль использовать для нового проекта, Я думаю, что важно иметь в виду две вещи.

  1. во-первых, важно понять, как Python интерпретирует отступы. Брайан Оукли упомянул о возможности off-by-one ошибки при использовании вкладок, но это на самом деле невозможно с настройками интерпретатора по умолчанию. Есть лучшее объяснение этому в Изучаем Python С O'Reilly Media.

В принципе, есть переменная (которая может быть изменена путем включения комментария в верхней части исходного файла # tab-width:), которая определяет ширину вкладки. Когда Python встречает вкладку, она увеличивает расстояние отступа в ближайшие несколько tab-width. Таким образом, если пробел, за которым следует вкладка, вводится слева от файла, следующее кратное tab-width равно 8. Если вкладка введена сама по себе, происходит то же самое.

таким образом, безопасно, если ваш редактор настроен правильно, использовать вкладки и даже смешивать вкладки и пробелы. Пока вы устанавливаете вкладку редактора на ту же ширину, что и объявление ширины вкладки Python (или 8, если оно отсутствует). Как правило, плохая идея использовать редактор с шириной вкладки кроме 8 пробелов, если не указать ширину вкладки в файле.

  1. во-вторых, большая часть синтаксического дизайна Python заключается в поощрении читаемости кода и согласованного стиля между программистами в одном проекте. Тем не менее, для любого конкретного проекта возникает вопрос, что сделает код наиболее читаемым людьми, работающими над проектом. Конечно, это хорошая идея, чтобы сохранить единый стиль отступов, но в зависимости от платформы и редактор, используемый проектом, другой стиль может иметь смысл для разных проектов. Если нет убедительных причин не соответствовать PEP 8, тогда имеет смысл сделать это, потому что это будет соответствовать тому, что люди ожидают.

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

вкладки также полезны при работе с большими блоками текста с отступами нескольких уровней. Когда вы выпадаете из 3-4 уровней отступов, гораздо легче выстроиться с правильной вкладкой, чем с правильным количеством пробелов. Если проект не использует рекомендуемый стиль PEP 8, вероятно, лучше всего написать руководство по стилю в файл где-то так, чтобы шаблон отступов оставался последовательным, и другие люди могут явно прочитать, Как настроить свой редактор на соответствие.

Кроме Того, Python 2.x имеет опцию -t выдавать предупреждения о смешанных вкладках и пробелах и -tt выдать ошибку. Это применимо только к смешанным вкладкам и пробелам внутри одной области. В Python 3 предполагает -tt и, насколько я нашел, нет способа отключить эту проверку.


опыт и PEP-8 оба ясно заключают, что смешивание пространств и TABs следует избегать. Если вы хотите смешать их, вам нужно визуализировать пробелы в IDE - но тогда вы теряете преимущество отступа Python, делая области легко видимыми. Визуализация пробелов в IDE загромождает дисплей.

если это либо вкладки или пробелы, то это должны быть пробелы по простой причине: можно переключить почти все IDEs и текстовые редакторы на автоматически заменяйте вкладки пробелами,но не наоборот.

даже если есть IDE, которые могут автоматически преобразовывать ведущие пробелы в строке в вкладки, это в конечном итоге приведет к смешению вкладок и пробелов. Рассмотрим многострочные операторы, такие как вызовы функций с большим количеством параметров или строк doc. Хотя "ascii-art" также следует избегать, это может легко произойти случайно, что после ведущих вкладок остается одно пространство.

другой ответы привели несколько аргументов в пользу вкладок:

  • удара TAB более эффективно. Конечно, это правда, но все текстовые редакторы позволяют сразу вставить нужное количество пробелов при нажатии клавиши tab
  • отступ / Дедентирование проще, когда просто нужно удалить одну вкладку вместо 2/3/4/8 пробелов. Да, но большинство текстовых редакторов все равно позволяют это делать автоматически: Block select, indent/dedent-основная функциональность редактора программирования, комментировать/раскомментировав. Если текстовый редактор не реализовал это, он должен иметь, по крайней мере, простую в использовании функциональность макросов, с которой можно достичь того же.
  • различные программисты любят различные ширины отступа. Это правда, и явное преимущество использования TABтолько s. Проблема заключается во взаимодействии с другими людьми и / или командами. Чтобы это работало в реальном мире, каждый должен был бы согласиться на все использование TABтолько s. Поскольку это не случилось, она все равно не работает. В сценарии реального мира есть набор руководящих принципов кодирования, с которыми проект все равно соглашается, и метод отступов, безусловно, является одним из них - даже на других языках программирования, где последствия "только" на визуальном уровне.

имхо, основной момент, что большинство (если не все) ответы отсутствуют здесь, это взаимодействие между командами или отдельными лицами, особенно в сценариях, где список участников не знает начать. Когда код встречается с кодом, все должны использовать вкладки или все должны использовать пробелы. Его нельзя смешать, не столкнувшись с проблемами функциональности. Люди не идеальны. Инструменты не идеальны. Вот почему имхо мы не должны использовать TABs вообще.

ни один ответ не является полным без ссылки, что Грег предоставил в своем ответе уже: Python: мифы о отступах


Редактор к редактору ошибка возникает, когда у вас есть смешанный отступ в файле. Это возникает следующим образом: блок кода отступается 4 пробелами, а затем один уровень отступа "in", он отступается вкладками. Теперь язычник, который сделал это (смешивание вкладок и пробелов), имел это, поэтому его вкладки также являются 4 пробелами, поэтому он не видит проблем, и Python не видит проблем.

теперь наша жертва приходит позже, и у него есть свои вкладки, установленные на 8 пробелов. Теперь наши жертвы думает код выглядит совсем разбитым, и фиксирует его by удаление одного уровня отступа, что теперь делает код посмотреть как будто это все еще 2 уровня отступа, но это на самом деле один уровень. В этот момент начинается настоящий ад.

урок здесь в том, что вы никогда не должны смешивать вкладки и пробелы. Если вы придерживаетесь этого, то легко восстановить код в пробелы или вкладки, независимо от того, что вы лично используете. Лучший способ убедитесь, что вы не смешиваете вкладки и пробелы, чтобы всегда запускать python с -tt, что приведет к ошибке при смешивании вкладок и пробелов.

Что касается вкладок и пробелов, я лично использую вкладки, поэтому отдельный отступ от внешнего вида - гораздо проще изменить внешний вид кода, когда он отступ с вкладками, чем с пробелами. Я знаю, что это противоречит тому, что делают 99% программистов Python, но это мой персональный предпочтение, и легко в любом случае преобразуйте файл с вкладками в разнесенный. Обратное не всегда верно, так как вы можете случайно выбить 4 пробела в строках и т. д.


Я в основном программист на C++, но иногда мои проекты включают небольшое количество Python. Я использую вкладки для отступа моего кода C++. Это означает, что у меня есть три варианта:

  1. используйте вкладки в C++ и пробелы в Python. Это позволяет моим файлам C++ оставаться такими, как они есть, и я следую рекомендации PEP-8, но я непоследователен в своем проекте.
  2. измените мой код C++ на использование пробелов. Это позволяет всем моим файлам в моем проекте быть согласованными, и я следую рекомендация PEP-8, но требует, чтобы я вернулся и изменил все мои файлы c++. Я считаю, что это плохо, потому что я предпочитаю вкладки.
  3. используйте вкладки в моем коде C++ и Python код. Это делает весь мой проект последовательным и позволяет мне использовать мой предпочтительный стиль отступов: вкладки. Недостатком является то, что я не следую стандарту PEP-8.

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


У всех разные предпочтения относительно того, сколько кода должно быть отступом. Предположим, Вы делитесь кодом с кем-то, и у него или у нее разные предпочтения относительно отступов. Если отступы находятся на вкладках, ваш друг всегда может просто изменить ширину вкладки в настройках редактора. Однако, если отступы находятся в пробелах, вашему другу фактически придется изменить исходный код, если он или она хочет установить его в свои предпочтения. Затем, когда вы получите изменения вашего друга, вы можете решить чтобы изменить его обратно на ваши предпочтения. В этом случае вам придется либо иметь дело с утомительным изменением уровней отступов назад и вперед, либо один человек должен принять предпочтения другого на уровне отступов. Если вы и ваш друг используете вкладки, тот факт, что у вас разные предпочтения, не является проблемой, так как вы можете видеть разные уровни отступов, пока код остается неизменным. Вот почему, на мой взгляд, вкладки лучше, чем пробелы для отступов на всех языках программирования.


существует сценарий, в котором вкладки просто не работают, а именно: в зависимости от стиля кодирования, который вы используете, вам может потребоваться отступить некоторые строки кода до точности в один пробел, i.e:

def foobar():
    x = some_call(arg1,
                  arg2)

в этом случае использование чисто вкладок не будет работать вообще; использование вкладок для основного отступа и пробелов для суб-отступа будет работать, но нарушит жесткое правило не смешивания двух.

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


в дополнение ко всем уже перечисленным аргументам я нахожу этот довольно важным (от мифы о вдавливании):

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

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

аргумент на вкладки, которые никто, казалось, еще не упоминал, что 1 вкладка - это 1 символ (0x09, 1 байт в файле), в то время как 4 пробела-это 4 символа (4 раза 0x20, 4 байта в файле); таким образом, использование пробелов приводит к 4X пустой трате места.

чтобы завершить этот непоследовательный список аргументов, я хотел бы привести ответ Тима Питерса в выпуск 7012: вкладки лучше, чем пробелы для отступов:

стандарт Python "только пробелы" предназначен для распределенный код. Годы раннего опыта научили нас, что вкладки вызвали бесконечные проблемы для shared код (...)


Это PEP 8 по состоянию на июль 2017:

Enter image description here

похоже, это утверждение не оставляет места для любого другого выбора.

но это не только то, что говорит нам PEP 8, несколькими строками позже:

Enter image description here

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

так: PEP 8-отступ табуляции толерантен. Он не терпит табуляции и пробелов, смешанных для отступов, что, поскольку сам отступ является обязательным, понятно.

возможно, стоит упомянуть, что стиль кодирования Python от Google также следует правилу 4-space.

есть и другие различные аргументы и обоснования в пользу вкладок или 4-пространство.

Если вы работаете в компании, которая применяет PEP 8, или регулярно делитесь своим кодом с другими, кто следует PEP 8, то здравый смысл диктует 4-space. Я (был, может быть) привык к вкладкам из C/C++. Но с правильно установленной IDE разница становится минимальной.


проблема с использованием пробелов вместо вкладок заключается в том, что размер файла становится невероятно большим.. Например, файл с отступом 500kb может быть уменьшен до 200kb при замене пробелов на вкладки, поэтому я всегда использую вкладки.

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

для меня нет смысла использовать пробелы, но если кто-то использует редактор, у которого есть проблемы с вкладками, они могут заменить "\t " на "" или " " или еще что-нибудь..


какая разница?

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

существуют ли другие причины, по которым вместо вкладок для Python будут использоваться пробелы? Или это просто неправда?

Да, есть и другие веские причины, как указал передо мной множество ответов. "PEP-8" говорит так, однако, не является одной из этих причин. Это происходит из самоподдерживающегося мифа о том, что PEP-8 является стандартом кодирования для все код Python, когда на самом деле это просто стандарт кодирования для стандартного набора библиотек Python. Некоторые утверждают, что PEP-8 широко принят, а некоторые утверждают, что большинство программистов Python используют пробелы вместо вкладок. Я хотел бы попросить доказательства этих претензий, так как количество голосов на этом сайте четко показывает что вкладки предпочитают массы. Мне очень жаль, что вы приняли "PEP8 говорит так" в качестве ответа на ваш вопрос, когда на самом деле есть много других ответов, которые фактически объясняют относительные преимущества и недостатки пробелов и вкладок.

должен ли я сразу переключить редактор на вставку пробелов вместо вкладок или продолжать работать, как раньше?

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

  • если вы начали работать на уже существующей базе кода: не трудно, следуйте существующему стандарту кодирования
  • если команда начинает новый проект с нуля: обсудите, решите стандарт кодирования в начале как команда и придерживайтесь его
  • если вы собираетесь Соло: do все, что заставляет вас чувствовать себя счастливее и продуктивнее

Итак, в какую ситуацию вы попадаете?

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


Я считаю, что есть решение, чтобы иметь оба:

  1. совместимость с PEP-8 и использование пробелов
  2. удобство использования tab вместо 4 пробелов

в Notepad++ перейдите в "Настройки" --> " Настройки вкладки "и выберите" Python " из списка справа. Затем убедитесь ,что " tab size: 4 "и установите флажок"заменить [tab] пробелом". В этом случае вы можете просто использовать клавишу tab для отступа, но Notepad++ фактически преобразует это в 4 пробела для вы.


используйте пробелы вместо вкладок, только по той причине, что вы заработаете больше денег:)

Ref.: Разработчики, Которые Используют Пробелы, Зарабатывают Больше Денег, Чем Те, Кто Использует Вкладки (сообщение в блоге переполнения стека).


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


Я люблю вкладки, но это как-то несовместимо с другим правилом, которое мне нравится: ограничение столбца 80.

Если выбрать 4 вкладки пробелов и вставить 10 вкладок, то останется место для 40 символов, чтобы выполнить ограничение на 80 столбцов. Если другой кодер предпочитает вкладки с 8 пробелами, та же строка будет отображаться как 120 символов и не будет отображаться как допустимая строка из 80 столбцов!

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

Edit: связанная тема:поддержание максимальной длины строки при использовании вкладок вместо пробелов?


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

в качестве некоторых конкретных примеров рассмотрим рендеринг Python docstrings в всплывающей подсказке в Код Visual Studio, или в инструменте diff, как Вне Конкуренции или WinMerge, инструменты охвата представления или кода, etc. В основном все эти различные другие интерфейсные инструменты могут иметь разные настройки для интерпретации вкладок, и это может раздражать и иногда дезориентировать, чтобы найти вещи совершенно разные или сдвинутые с экрана среди наборов инструментов, которые вы можете погружаться и выходить.

в двух словах вы определяете выравнивание в источнике, а не спорите о единой конфигурации для набора инструментов в вашем арсенале. Пробелы строго интерпретируются в шрифте monospace, чтобы обеспечить надежное и последовательное выравнивание по всему диапазону инструментов из-за определения шрифта, а не реализации/конфигурации рендеринга вкладки третьей стороны.

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

cmd_create_db = '''CREATE TABLE test (
    Col1 INTEGER,
    Col2 INTEGER,
    Col3 TEXT)'''

вы можете см. что-то вроде следующего (см. в интегрированном терминале Visual Studio Code)...

>>> cmd_create_db = '''CREATE TABLE test (
... .DS_StoreCol1 INTEGER,
... .DS_StoreCol2 INTEGER,
... .DS_StoreCol3 TEXT)'''
>>> cmd_create_db
'CREATE TABLE test (\n.DS_StoreCol1 INTEGER,\n.DS_StoreCol2 INTEGER,\n.DS_StoreCol3 TEXT)'

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


Итак, здесь я читаю все ответы и задаюсь вопросом, как я могу выполнить PEP-8 без раздражения стучать по моей кнопке backspace несколько раз, чтобы удалить отступ, и я смотрю на свою игровую клавиатуру Logitech со всеми ее причудливыми кнопками макроса и лампочкой в моей голове. Открыл программное обеспечение logitech, определил пару макросов для кнопок рядом с кнопкой tab и проблема решена. Одна кнопка добавляет четыре пробела, другая делает backspace четыре раза. Удивительный. Просто удивительно. Так легко нажимать кнопки и мизинцем. Смотрите, проверьте это: "


Я использую два отступа и редактор (kwrite), который вставляет пробелы вместо вкладок, когда я нажимаю клавишу tab.