在VSCode中编写python代码,代码规范工具介绍与推荐

引言

  • 日常中,写的最多的代码是Python,虽说是算法工程师,这不也是工程师嘛,所以基本的代码功底还是要有的。
  • 由于Python是动态类型语言,没有强制的约束,如果没有一些相应规范,会导致大家写的代码可读性较差,且潜在的问题难以发现。
  • 因此,本文旨在引入一些工具来帮助大家写出更加健壮的代码。

结论

  • 先说结论,节省大家时间:
    • Pylint + Black + MyPy + isort
  • 以上四个工具结合,可以写入较为规范整洁的代码。当然,具体质量如何,还在自身,工具只是次要。谨记。

Pylint介绍以及VSCode配置

Pylint介绍
  • Pylint是一个Python代码静态分析工具。它能够检查代码质量、潜在错误、代码风格、复杂度等多个方面。同时具有广泛的配置选项,可以根据项目的需求惊醒灵活的定制。
  • 值得一提的是,小伙伴可能会困惑于Pylint和Flake8的关系,以及为什么选用Pylint?
    • 这个问题也曾困扰着我,因为我的VSCode插件中,总是默认安装着Flake8这个插件,至于其作用,从未有过详细追究。今天通过网上搜索,得以明白二者区别联系:
    • 区别:
      • 功能范围:Pylint是一个功能非常强大的工具,它能够检查代码质量、潜在错误、代码风格、复杂度等多个方面。Pylint提供了大量的检查规则,并生成详细的报告。相比之下,Flake8更专注于代码风格和语法检查,它结合了多个独立的工具,包括pyflakes、pycodestyle和mccabe,以提供一致的代码风格和静态错误检查。
      • 配置选项:Pylint提供了广泛的配置选项,可以根据项目的需求进行灵活的定制。它允许你通过配置文件或命令行参数来调整规则的行为。Flake8的配置选项相对较少,主要通过配置文件进行设置,但它提供了一些额外的插件和扩展,可以增加一些功能和定制选项。
    • 联系:
      • 静态分析:Pylint和Flake8都是静态分析工具,用于在代码编写阶段检测潜在的问题。它们可以自动检查代码,发现语法错误、未使用的变量、不符合代码风格指南的部分等。

      • 插件支持:Pylint和Flake8都支持使用插件来扩展其功能。你可以根据需要选择并添加适合的插件来满足特定项目的需求。

      • 社区支持:Pylint和Flake8都有活跃的用户社区,提供了文档、示例和支持论坛。这使得你可以从其他用户的经验中学习,并获得反馈和帮助。

      • 与集成开发环境(IDE)的整合:Pylint和Flake8都可以与多个常用的Python集成开发环境(IDE)进行整合,例如PyCharm、Visual Studio Code等。这使得你可以在开发过程中即时获得代码检查和建议。

  • 最终结论:选择Pylint。
VSCode配置
  1. 安装Pylint插件
  2. 配置setting.json
        "pylint.importStrategy": "useBundled",
        "pylint.args": [
            "--disable=invalid-name,missing-module-docstring",
            "--disable=W0612,W0631,W0703,W0621,W0613,W0611,W1308,C0411,C0111,C0103,C0301,C0304,C0305,E1101,R0913,R0914,R0915,R0903" ,
        ]
    

Black介绍以及VSCode配置

Black介绍
  • Black是一个自动格式化Python代码的工具,旨在提供一种统一的代码风格。其遵循一组严格的规则和约定,确保不同开发者的代码在格式上具有一致性。工作原则是“不需要配置”。
  • yapfautopep8相比,为什么选择Black?
    • 因为懒,不想配置过多东西。感兴趣小伙伴可自行比较三者区别。
VSCode配置
  1. 安装Black Formatter插件
  2. 配置setting.json
        "[python]": {
            "editor.defaultFormatter": "ms-python.black-formatter",
            "editor.codeActionsOnSave": {
                "source.organizeImports": true
            },
            "editor.formatOnSave": true,
        },
    

MyPy介绍以及VSCode配置

MyPy介绍
  • MyPy是一个静态类型检查工具。其特点在于:当代码中添加类型注解后,MyPy支持类型推断、类型提示和类型注释功能。
  • 要想使用这款工具,需要更改一下日常习惯,为函数参数添加类型注解,这也增加代码可读性。当然,起初这是一件比较痛苦的事情,习惯以后,受益良多。
VSCode配置
  1. 安装插件Mypy Type Checker
  2. 配置setting.json
        "mypy-type-checker.importStrategy": "useBundled",
        "mypy-type-checker.args": [
            "--follow-imports=skip",
            "--ignore-missing-imports",
            "--show-column-numbers",
            "--allow-untyped-defs",
            "--allow-subclassing-any",
            "--allow-untyped-calls",
            "--no-warn-no-return"
        ],
    

isort

  • 这个工具是用来对py文件中的import排序用的。可以简单配置为Black的规则即可。
VSCode配置
  1. 安装isort插件
  2. 配置setting.json
        "isort.args":["--profile", "black"],
    

完整的setting.json配置

    "[python]": {
        "editor.defaultFormatter": "ms-python.black-formatter",
        "editor.codeActionsOnSave": {
            "source.organizeImports": true
        },
        "editor.formatOnSave": true,
    },
    "isort.args":["--profile", "black"],
    "mypy-type-checker.importStrategy": "useBundled",
    "mypy-type-checker.args": [
        "--follow-imports=skip",
        "--ignore-missing-imports",
        "--show-column-numbers",
        "--allow-untyped-defs",
        "--allow-subclassing-any",
        "--allow-untyped-calls",
        "--no-warn-no-return"
    ],
    "pylint.importStrategy": "useBundled",
    "pylint.args": [
        "--disable=invalid-name,missing-module-docstring",
        "--disable=W0612,W0631,W0703,W0621,W0613,W0611,W1308,C0411,C0111,C0103,C0301,C0304,C0305,E1101,R0913,R0914,R0915,R0903" ,
    ]
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在使用VSCode格式化Python代码时出错,可能是由于以下几个原因: 1. 未正确安装Python插件:在VSCode,需要安装Python插件才能正常格式化Python代码。请确保已正确安装Python插件,并且更新到最新版本。 2. 配置错误:格式化Python代码时,VSCode会根据自定义的设置进行操作。检查是否正确配置了格式化选项,比如缩进、换行方式等。可以在VSCode的设置搜索"python.format"来修改相关配置。 3. 代码错误:如果Python代码本身存在语法错误或者格式问题,VSCode可能会无法正确进行代码格式化。在编写Python代码之前,应确保代码的合法性和正确性。 4. 扩展冲突:如果过多的扩展程序可能会导致冲突。您可以尝试禁用其他未使用的扩展程序,并重新尝试格式化函数。 如果你尝试了上述解决方案仍然无法解决问题,你可以尝试以下方法: 1. 重启VSCode:有时候,VSCode的插件可能遇到了问题,通过重新启动软件可以尝试解决这个问题。 2. 更新VSCodePython插件:确保你的VSCodePython插件是最新的版本。 3. 重新安装VSCodePython插件:如果问题依然存在,可以尝试重新安装VSCodePython插件,以解决潜在的问题。 如果问题依然存在,你可以在VSCode的GitHub页面上寻求帮助,提供详细的报错信息和步骤,以便得到更好的支持。 ### 回答2: 在使用VSCode格式化Python代码失败时,可能会有以下几种可能性和解决方法: 1. 未安装Python插件:确保在VSCode安装了Python插件。可以通过点击“扩展”图标,然后搜索并安装“Python”插件。 2. 配置问题:请确保VSCode正确地配置了Python解释器路径。可以在VSCode的设置搜索“Python Path”并修改为正确的Python解释器路径。 3. 格式化插件问题:如果使用了第三方格式化插件,可能是插件本身的问题导致格式化失败。可以尝试更新或重新安装该插件,并确保插件与VSCode的版本兼容。 4. 代码问题:有些特殊的代码结构或语法错误可能会导致格式化失败。可以尝试先修复代码的错误,然后再进行格式化操作。 5. 选择合适的格式化工具VSCode支持多种格式化工具,如Pylint、autopep8等。可以在VSCode的设置搜索“Formatting Provider”并选择合适的格式化工具进行尝试。 6. 更新VSCode:如果仍然无法解决问题,可以尝试升级VSCode到最新版本,以确保使用的是最新的功能和修复。 总结:格式化Python代码失败可能是由于未安装插件、配置不正确、格式化插件问题、代码问题或VSCode版本问题等原因导致。根据具体情况逐步排查并解决问题。 ### 回答3: 在使用VSCode格式化Python代码失败时,可能有以下几个原因和解决方法: 1. 缺少Python相关的插件:首先,确保已安装并启用了适用于Python的相关插件,例如“Python”和“Pylance”。可以通过单击VSCode左侧的扩展图标,在搜索框输入关键字来查找和安装这些插件。 2. Python环境配置问题:如果VSCode无法识别Python环境或没有选择正确的Python解释器,可能会导致格式化失败。可以通过点击VSCode右下角的Python环境选择器,选择正确的Python解释器路径。 3. 代码质量问题:某些格式化工具可能无法处理低质量的代码代码的语法错误。在格式化之前,建议先确保代码没有语法错误,并根据PEP 8样式指南进行代码规范性调整。 4. 插件设置问题:有些插件可能有自定义的格式化选项,并且默认与VSCode的设置可能会发生冲突。可以检查插件的设置页面,以了解它们是否有任何有关代码格式化的选项,并调整为适合你的设置。 5. 更新VSCode和插件:格式化问题有时可能是由于使用的是过期的VSCode版本或插件版本不兼容所致。确保你使用的是最新版本的VSCode和相关插件。 如果以上方法仍然不能解决问题,你可以通过检查VSCode的输出窗口或查阅插件的文档来获取更多详细的错误信息,从而进一步定位问题所在,并尝试其他可能的解决方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值