Я думаю, что одним из основных преимуществ использования пробелов является то, что вы удаляете изменчивость в том, как ваш исходный код отображается во множестве внешних инструментов, которые должны взаимодействовать с исходным кодом, помимо редактора по своему выбору, и какими бы настройками он не был настроен. в.
В качестве некоторых конкретных примеров рассматривается рендеринг строк документации Python во всплывающей подсказке в Код Visual Studio или в инструменте сравнения, таком как Beyond Compare или WinMerge , инструменты производительности или покрытия кода и т. д. В основном все эти различные другие инструменты взаимодействия могут иметь разные настройки для интерпретации вкладок, и это может раздражать и порой дезориентировать, чтобы находить вещи значительно отличающиеся или отталкивающиеся от экрана среди наборов инструментов, на которые вы можете погрузиться. вход и выход.
В двух словах, вы определяете выравнивание в источнике, а не настраиваете единую конфигурацию для набора инструментов в вашем арсенале. Пробелы строго интерпретируются моноширинным шрифтом, чтобы обеспечить надежное и согласованное выравнивание по всему объему инструментов благодаря определению шрифта, а не реализации / конфигурации рендеринга на сторонней вкладке.
Другим углом к этому является копирование исходного источника вкладок для запуска на терминале, где символ вкладки может вызвать непреднамеренное завершение вкладки. Например, если вы копируете следующий исходный код Python (вкладки используются как отступы),
cmd_create_db = '''CREATE TABLE test (
Col1 INTEGER,
Col2 INTEGER,
Col3 TEXT)'''
вы можете увидеть что-то вроде следующего (видно на встроенном терминале кода Visual Studio) ...
>>> 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)'
(Кроме того: я задавался вопросом, является ли это наблюдение согласованности между инструментами признаком разборчивого ума проницательного разработчика, стремящегося упорядочить мир, что может указывать на намек на разницу в зарплате, обнаруженную в переполнении стека.)