#python #visual-studio-code #pep8 #autopep8
#python #visual-studio-code #pep8 #autopep8
Вопрос:
Проблема, с которой я столкнулся, связана с автоматическим форматированием в коде 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"
}
Вот пример сценария перед сохранением в формате:
Вот что происходит после сохранения:
Раньше этого не происходило. Дайте мне знать, если что-то сбивает с толку или требуется дополнительная информация
Комментарии:
1. Не произошло до чего?
2. Эти два параметра выглядят подозрительно:
"editor.tabSize"
amp;"prettier.tabWidth"
. Попробуйте установить одно или оба значения равными 4. Согласно PEP8, отступ должен составлять 4 пробела. Итак, 1 tab = 4spaces — это правильная конфигурация.3. Потрясающе! Решено!
4. @Miguel, можете ли вы подтвердить, какой из этих параметров нужно было изменить или оба из них?
5. Я установил для editor.tabSize и prettier.tabWidth значение 4 пробела.
Ответ №1:
Похоже, что что-то в вашем редакторе настроено на 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,
Наконец, последнее, что я заметил: ваш сценарий «до» имеет несогласованные размеры отступов, размер отступов в строке print(f'{A} {B} {C} {D}')
отличается от размера остального кода.