我制作了一个classproperty描述符,每当我使用用它装饰的函数时,我都会收到多个pylint检查错误。
这是一个带有示例装饰函数的示例类:
class Bar:
"""
Bar documentation.
"""
# pylint: disable=no-method-argument
@classproperty
def foo():
"""
Retrieve foo.
"""
return "foo"
多亏了描述符,我可以调用Bar.foo并获取返回的字符串foo。
不幸的是,每当我将这样的函数用于稍微复杂的项目(例如返回对象实例的函数)时,pylint就会开始抱怨诸如no-memberor之类的东西unexpected-keyword-arg,仅仅是因为它认为Bar.foo是一个方法,而不是一个包装的classproperty对象。
我想禁用任何使用我的函数的代码的警告- 我绝对不能允许# pylint: disable每次使用classproperty-wrapped 方法时都必须编写。我该怎么做呢pylint?或者也许我应该改用其他 linter?
以下是由于上述原因生成的警告示例:
class Bar:
"""
Bar documentation.
"""
# pylint: disable=no-method-argument
@classproperty
def foo():
"""
Retrieve an object.
"""
return NotImplementedError("Argument")
print(Bar.foo.args)
pylint抱怨E1101: Method 'foo' has no 'args' member (no-member)(即使我知道它肯定有),我想完全禁用任何使用Bar.foo.args或类似的模块/类/函数的警告。
对于任何感兴趣的人,这里是描述符的最小实现classproperty:
class classproperty:
"""
Minimal descriptor.
"""
# pylint: disable=invalid-name
def __init__(self, func):
self._func = func
def __get__(self, _obj, _type):
return self._func()
慕村225694
婷婷同学_
相关分类