首页 > 编程语言 >在VSCode中编写python代码,代码规范工具介绍与推荐

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

时间:2023-07-16 15:25:35浏览次数:42  
标签:插件 VSCode 代码 配置 Pylint 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" ,
    ]

标签:插件,VSCode,代码,配置,Pylint,python,--
From: https://www.cnblogs.com/shiwanghualuo/p/17557877.html

相关文章

  • Nginx代码导入CLion
    安装mingw64C/C++编译器GCC的Windows版本https://sourceforge.net/projects/mingw/从官网下载后勾选勾选全部后关闭窗口时选择reviewchanges设置环境变量通过命令gcc-v检验是否设置成功。打开代码后,打开某个c文件,选择CreateCMakeLists.txt直接点击OK......
  • python高阶之代码质量保证体系和工具
    项目管理工具1.pdm项目工具安装pipinstallpdm2.pdm安装其他工具命令pdmaddpytestpdmaddblack,flake8,isort#同时安装多个工具pdm执行命令1.直接在终端命令行执行pdmrunbalck./2.在pyproject.toml文件进行配置批量执行命令[tool.pdm.scripts]chenyong={compo......
  • Java语言支付代码
    Java语言支付代码引言随着电子商务的迅速发展,支付功能成为了每个电商平台必备的功能之一。在Java语言中,开发者可以使用各种支付SDK和API来实现支付功能。本文将介绍Java语言中支付代码的基本原理,并提供一些示例代码以帮助读者更好地理解。支付流程在介绍具体的支付代码前,我们先......
  • CVE-2019-11043(PHP远程代码执行漏洞)复现
    一、漏洞介绍1、相关背景在web早期,页面都是以静态页面为主(如:HTML),没有动态页面的说法,所有还没有动态语言(如:PHP、JSP等)后来Ngnix为支持PHP语言就将有出现php页面的请求给PHP相关程序来进行处理,然后将处理后的结果反馈给用户。而解决PHP的相关程序就是cgi协议,有了cgi协议以后......
  • 利用Python的JSON以及Base64模块实现二进制文件传输及反向Shell
    控制端代码:importsocketimportoptparseimportsysimportthreadingimportjsonimportbase64classMyTCPServer:def__init__(self)->None:self.port=self.get_param()try:self.s_socket=socket.socket(socket.AF_INET,......
  • WSL环境中安装过Java并配置VSCode
    WSL环境已经配置好,现在开始在Ubuntu里面安装Java!一下载tar包方式手动安装1.1下载地址:https://www.oracle.com/java/technologies/downloads/1.2在上面的地址中选择合适的版本进行下载,然后将下载的安装包拷贝到wsl系统所在目录,然后进入Ubuntu,找到拷贝的安装包,比如我的wsl迁移......
  • python通过Websocket与html主动通讯
    python通过Websocket与html主动通讯导语:在Web开发中,实现实时通信是一项常见的需求。本文将介绍如何使用Python和WebSocket技术实现与HTML页面的实时通信,以显示当前的实时时间。1.WebSocket简介WebSocket是一种全双工通信协议,允许在客户端和服务器之间建立持久连接,实现实时数据......
  • pytorch使用(三)用PIL(Python-Imaging)反转图像的颜色
    1.多数情况下就用这个,不行再看下面的fromPILimportImageimportPIL.ImageOps#读入图片image=Image.open('your_image.png')#反转inverted_image=PIL.ImageOps.invert(image)#保存图片inverted_image.save('new_name.png')2.如果图像是RGBA透明的,参考如下代码......
  • pytorch使用(二)python读取图片各点灰度值or怎么读、转换灰度图
    python读取图片各点灰度值方法一:在使用OpenCV读取图片的同时将图片转换为灰度图:img=cv2.imread(imgfile,cv2.IMREAD_GRAYSCALE)print("cv2.imread(imgfile,cv2.IMREAD_GRAYSCALE)结果如下:")print('大小:{}'.format(img.shape))print("类型:%s"%type(img))print(img)......
  • Python教程(4)——Python开发工具PyCharm的下载与安装
    PyCharm是一种专业的Python集成开发环境(IDE),由JetBrains公司开发和维护。它提供了丰富的功能和工具,帮助开发人员更高效地编写、调试和测试Python代码。如果是一些大型Python项目强烈推荐用这个来开发。今天我们来介绍一下PyCharm的下载与安装。PyCharm的下与载安装首先需要到PyCh......