pylint 错误 - 使用 @property + @foo.setter 时的 E1101 和 E0102

yon*_*nix 6 python pylint pydev pyflakes

我注意到 pylint 不能很好地处理以下情况:

@property
def foo(self):
   return self._bar.foo

@foo.setter
def foo(self, foo_val):
   self._bar.foo = foo_val
Run Code Online (Sandbox Code Playgroud)

虽然它是自 python2.6 以来完全有效的 case 语法

它说我定义了 foo 两次,并且不理解“.setter”语法(给出 E1101 和 E0102)。

有没有无需更改代码的解决方法?我不想禁用错误,因为它们对其他地方很重要。

有没有其他工具可以更好地处理它?我已经检查过 pyflakes 并且它的行为方式相同。PyDev 的代码分析似乎可以更好地处理这种特定情况,但它不会检查 pylint 所做的约定、重构和其他很酷的功能,而且我无法从外部脚本运行它(或者我可以吗??)

谢谢!

gur*_*lex 3

这是pylint 项目的票证http://www.logilab.org/ticket/51222 。监控它的状态。