首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pylint R1720:"raise“后不必要的"elif”(no-else-raise)

pylint是一个用于静态代码分析的工具,用于检查Python代码中的潜在问题和错误。R1720是pylint的一个警告消息,指出在使用raise语句时,不需要使用elif语句。

在Python中,raise语句用于引发异常。当某个条件满足时,我们可以使用raise语句来主动引发异常,从而中断程序的正常执行流程。而elif语句用于在多个条件语句中选择一个执行。

然而,当我们在使用raise语句时,通常是希望立即引发异常并中断程序的执行,而不需要再执行其他条件判断。因此,在raise语句后面使用elif语句是多余的,也是不必要的。

举个例子,假设我们有一个函数,用于检查某个数字是否为负数,并在数字为负数时引发异常:

代码语言:txt
复制
def check_negative(num):
    if num < 0:
        raise ValueError("Number cannot be negative")
    elif num == 0:
        print("Number is zero")
    elif num > 0:
        print("Number is positive")

在上面的代码中,elif语句是多余的。因为当num < 0时,我们已经使用raise语句引发了异常,程序会立即中断,不会再执行后续的条件判断。

为了修复这个问题,我们可以简化代码,去掉elif语句:

代码语言:txt
复制
def check_negative(num):
    if num < 0:
        raise ValueError("Number cannot be negative")
    if num == 0:
        print("Number is zero")
    if num > 0:
        print("Number is positive")

这样,当num < 0时,会立即引发异常,不会再执行后续的条件判断。

总结一下,pylint的R1720警告消息提醒我们,在使用raise语句时,不需要使用elif语句。这样可以简化代码,提高代码的可读性和可维护性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mps
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Real-Time 3D):https://cloud.tencent.com/product/trtc
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

pylint在pycharm使用及pylint配置

pylint作为python代码风格检查工具,接近 PEP8风格,在使用此方法过程中,发现不仅能让代码更加规范,优雅,更能 发现 隐藏bug。...使用方法:文件 或文件夹 右击 选择 External Tools => Pylint 即可 2种安装方式总结: a.通过pycharmpylint检测 对 忽略检测文件 功能失效,此功能 必须...pylint 禁用某些功能方法: 在配置文件中   [MESSAGES CONTROL] disable 添加 想禁用功能; 如:报错如下; ?        ...在一个文件 单独一行 使用 则 此行以下 被忽略;  pylint配置: 注意点:pylint默认配置 无法 满足实际开发需求,需要自行调整;如下代码 为 自行调整结果; [MASTER]...中有return,else中不能有return 校验 no-else-raise, # 去掉 if中有raise,else中不能有raise 校验 # Enable the message

8.8K30

使用pycharm和pylint检查python代码规范操作

pylint是一个不错代码静态检查工具。将其配置在pycharm中,随时对代码进行分析,确保所有代码都符合pep8规范,以便于养成良好习惯,将来受用无穷。 第一步,配置pylint ?...补充知识:pylint在pycharm使用及pylint配置 pylint作为python代码风格检查工具,接近 PEP8风格,在使用此方法过程中,发现不仅能让代码更加规范,优雅,更能 发现 隐藏...在一个文件 单独一行 使用 则 此行以下 被忽略; pylint配置: 注意点:pylint默认配置 无法 满足实际开发需求,需要自行调整;如下代码 为 自行调整结果; [MASTER] #...检测 too-few-public-methods, # 去掉 检测 类中方法太少 功能 no-else-return, # 去掉 if中有return,else中不能有return 校验 no-else-raise..., # 去掉 if中有raise,else中不能有raise 校验 # Enable the message, report, category or checker with the given id

4.7K10
  • Python基础—让你规范Python语言使用

    优点: 可以捕获容易忽视错误, 例如输入错误, 使用未赋值变量等. 缺点: pylint不完美....你可以使用命令 pylint --list-msgs 来获取pylint告警列表. 你可以使用命令 pylint --help-msg=C6409 , 以获取关于特定消息更多信息....结论: 异常必须遵守特定条件: 像这样触发异常: raise MyException("Error message") 或者 raise MyException ....不要使用两个参数形式( raise MyException, "Error message")或者过时字符串异常( raise "Error message" )....生成值, 生成器函数运行状态将被挂起, 直到下一次生成. 优点: 简化代码, 因为每次调用时, 局部变量和控制流状态都会被保存. 比起一次创建一系列值函数, 生成器使用内存更少.

    1.5K80

    my python FAQ

    代码扫描规范工具Windows下安装 pylint用于代码自动分析,配置eclipse设置build Automatically,每次保存后生成报告,说明你代码是否符合编程规范,并给你打分(我一份可以跑通代码是...( 如:D:\Python26\Scripts) 在命令行尝试执行 pylint,如果输出帮助,则表示已经安装成功 pylint默认规范不符合驼峰方式变量和方法命名方式 可视需要创建一份公用conf...文件 确定变量和方法正则表达式 配置草案: pylint.conf 可添加到eclipse=>Window=>preferences=>Pydev=>Pylint use Pylint勾上,location...of pylint填入下载包pylint本地路径 D:\develop\pylint\pylint-0.22.0\lint.py arguments框里填入: --rcfile=C:\Python26...因此每次做完random, 需要random.seed(),这样能生成新随机数 uuid方式: >>> import uuid # make a random UUID >>> uuid.uuid4

    99570

    创建和发布 Python 包

    ---- 如果你和我一样,希望将编写 Python 实用程序与同事共享,最好方法是制作一个软件包:它很容易安装,而且不需要复制粘贴。 不过,如果对其中方法不熟悉,可能会感到头痛。...raise NotImplementedError() 测试包 用传统方法,比较麻烦,这里推荐一个工具:flit,它可以简化一切。...测试 下面关注格式化(black)、测试覆盖率(coverage)、代码质量(flake8、pylint、mccabe)和静态分析(mypy)等,通过tox来执行所有操作。...云构建 每个可靠开源项目都会在每次提交运行云测试,所以此处亦然。 用 GitHub Actions 构建项目,用Codecov 检查测试覆盖率,用 Code Climate检查代码质量。...运行诸如pylint、coverage等单个命令会更快,但这些命令非常冗长,因此我们将把这些枯燥东西自动化。

    96130

    Google 内部 Python 代码风格指南

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器with语句 利用Pythonimplicit...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.1K10

    快收藏!!Google内部Python代码风格指南(中文版)

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器with语句 利用Pythonimplicit...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.2K30

    Google 内部 Python 代码风格指南

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器with语句 利用Pythonimplicit...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.6K30

    Google 内部 Python 代码风格指南(译)

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...不包含空格不方便分行模块级别的长字符串常量 pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.7K10

    Google 内部 Python 代码风格指南

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...不包含空格不方便分行模块级别的长字符串常量 pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.5K20

    Google Python代码风格指南

    可以通过下述方式来获得pylint警告列表: pylint --list-msgs 用下述方式来获取某个特定消息更多具体信息: pylint --help-msg=C6409 优先使用pylint...,也比较容易错过调用库函数报错. 2.4.4 建议 异常必定遵循特定条件: 使用raise MyError('Error message')或者raise MyError(),不要使用两段raise...pylintdiable注释使用(如# pylint: disable=invalid-name) 不要使用反斜杠连接,除非对于需要三层或以上上下文管理器with语句 利用Pythonimplicit...,因为这会在维护时带来不必要负担(对于:....不必要地打开文件,socket或其他类似文件对象有很多弊端: 他们可能会消耗有限系统资源,例如文件描述符.如果在使用没有即使归还系统,处理很多这样对象代码可能会浪费掉很多不应浪费资源.

    1.2K20

    sqlmap 源码分析(二)初始化

    sqlmap是web狗永远也绕不过去神器,为了能自由使用sqlmap,阅读源码还是有必要… 初始化 参数解析完,开始初始化 init(cmdLineOptions) 这一部分主要是根据之前参数...logger.setLevel(8) elif conf.verbose >= 5: logger.setLevel(7) 保存命令行配置到ini文件 当然,和前面的新手引导类似...: import psycopg2 elif dbmsName == DBMS.ORACLE: import cx_Oracle elif dbmsName == DBMS.SQLITE...,其中前三种需要用户密码,一种需要私钥文件 涉及东西比较多,就不贴代码了 设置http代理 _setHTTPHandlers() 简单看一下就是简单判断,然后使用http/socks代理。...开始 基本初始化完成,就正式进入了注入测试中 start()

    66620

    Python语言编程规范与优化建议

    虽然一些大型软件公司对自己公司程序员编写代码在布局、结构、标识符命名等方面有一些特殊要求,但其中很多内容和思想是相通,目的也是一致。...这里重点介绍Python社区对代码编写一些共同要求、规范和一些常用代码优化建议,最好在开始编写第一段代码时候就要遵循这些规范和建议。 (1)严格使用缩进来体现代码逻辑从属关系。...另外,尽量避免导入整个库,最好只导入确实需要对象。 (3)最好在每个类、函数定义增加一个空行,在不同功能代码段之间增加一个空行,在运算符两侧各增加一个空格,逗号后面增加一个空格。...(9)充分利用逻辑运算符关系运算符以及逻辑运算符and和or短路求值特点,合理组织条件表达式中多个条件,减少不必要计算。...也可以使用pip install pylint安装Python代码检查工具pylint,然后使用命令行工具pylint来检查程序规范性,或者使用可视化工具pylint-gui来完成同样任务。

    1.3K40

    Python 关键字

    continue            global              pass True                def                 if                  raise...', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise...continue跳出本次循环,继续执行下一次循环def用于定义函数或方法del删除变量或序列elif条件语句,与 if、else 结合使用else条件语句,与 if、elif 结合使用。...也可用于异常和循环语句exceptexcept 包含捕获异常操作代码块,与 try、finally 结合使用finally用于异常语句,出现异常,始终要执行 finally 包含代码块。...空类、方法或函数占位符raise异常抛出操作return用于从函数返回计算结果trytry 包含可能会出现异常语句,与 except、finally 结合使用whilewhile 循环语句with

    57620
    领券