首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当重写子类中的“标准”方法时,pylint W0622 (重新定义内建)

当重写子类中的“标准”方法时,pylint W0622 (重新定义内建)
EN

Stack Overflow用户
提问于 2019-05-09 09:39:37
回答 1查看 9.5K关注 0票数 9

在Python中,许多方法使用“标准化”名称定义参数变量,如:

代码语言:javascript
复制
def __exit__(self, type, value, traceback):

在上面的行中,变量类型会导致pylint警告(W0622)一个内建正在被重新定义:重新定义内置的‘类型’(重新定义的-内置的)。

有许多方法可以解决这个问题,并使pylint高兴(重命名变量,添加一个pylint指令(# pylint: disable=W0622)来忽略问题等等)。

在这种情况下,保持良好代码质量和使pylint高兴的最佳/首选/建议/建议/常规方法(如果有的话)是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-12-11 14:20:12

禁用pylint警告可以被认为是一种糟糕的做法。

引用quantifiedcode.com

为了使__exit__正常工作,它必须有三个参数: exception_type、exception_value和traceback。方法定义中的形式参数名称不需要与这些名称直接对应,但它们必须按此顺序出现。

因此,一个很好的选择可以是使用元组打包def __exit__(self, *exc)

这是在本正式文档中所建议的:https://docs.python.org/3/library/contextlib.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56056551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档