Pylint,如何禁用有条件的规则

问题描述 投票:0回答:1

我不想禁用整个项目的规则,而是针对已知的场景。喜欢:

class A:
   def __init__(self, creator: Callback[[],B])

大部分时间我都用

x = A(lambda: Bx())
y = A(lambda: By())

但是它总是会触发

unnecessary-lambda
,但我无法删除这个lambda。由于这种情况发生了很多,我只想在这种情况下禁用该规则..

类似:

disable=unnecessary-lambda when-class=A

或者作为注释...

# pylint: disable=unnecessary-lambda propagate=True
class A:
    def __init__(self, creator: Callback[[],B])

有某种方法可以做到这一点吗?

PS: 案件是这样发生的:

class Bx(B):
    factory = A(lambda: Bx())
python pylint pylintrc
1个回答
1
投票

就目前的代码而言,lambda 确实是不必要的。 您可以使用

x = A(Bx)
代替
x = A(lambda: Bx())
。 这将消除警告。

如果这不能解决您的问题,我将推荐您参考https://pylint.pycqa.org/en/latest/user_guide/message-control.html,它提供了多种禁用 pylint 警告的方法,例如给定范围。

© www.soinside.com 2019 - 2024. All rights reserved.