Автоформатирование Python добавляет дополнительные пробелы - PullRequest
0 голосов
/ 20 апреля 2019

Проблема, с которой я столкнулся, связана с автоматическим форматированием в коде Visual Studio для моих файлов Python.

Мне нравится использовать вкладки в Python, так как это упрощает согласованность и ускоряет ввод кода;однако, когда я сохраняю код Visual Studio, автоформат при сохранении добавляет дополнительное место в каждой строке.Это означает, что скрипт Python работает, но структура выглядит не так.

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

Settings.json :

{
    "color-highlight.markerType": "dot-before",
    "editor.detectIndentation": false,
    "editor.formatOnSave": true,
    "editor.tabSize": 3,
    "liveServer.settings.donotShowInfoMsg": true,
    "prettier.tabWidth": 3,
    "python.pythonPath": "C:\\Users\\mtapi\\Anaconda3\\python.exe",
    "window.zoomLevel": 1,
    "python.condaPath": "C:\\Users\\mtapi\\Anaconda3\\Scripts\\conda.exe",
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
    "editor.insertSpaces": false,
    "prettier.useTabs": true,
    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.linting.pep8Enabled": true,
    "editor.mouseWheelZoom": true,
    "editor.fontSize": 15,
    "workbench.iconTheme": "vscode-icons",
    "workbench.colorTheme": "Default High Contrast"
}

Вот пример сценария перед сохранением в формате :

enter image description here

Вот что происходит после сохранения :

enter image description here

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

1 Ответ

0 голосов
/ 20 апреля 2019

Похоже, что-то в вашем редакторе настроено на 4 пробела вместо 3 для отступа.

Однако, если вы хотите следовать PEP8, я бы посоветовал вам использовать 4 пробела для размера отступа, как предлагает само предложение (а не вкладки): https://www.python.org/dev/peps/pep-0008/#indentation

С учетом сказанного, я предполагаю, что это как-то связано с этими строками, поскольку они говорят редактору использовать PEP8, а PEP8 запрашивает 4 пробела:

    "python.linting.pylintEnabled": true,
    "python.linting.enabled": true,
    "python.linting.pep8Enabled": true,

Наконец, последнее, что я заметил: ваш скрипт «before» имеет несовместимые размеры отступов, строка print(f'{A} {B} {C} {D}') имеет размер отступов, отличный от остальной части кода.

...