我在Python中使用Eclipse中的pydev进行开发,我的一些代码在代码分析工具中生成错误。明确地:

class Group(object):
    def key(self, k):
        class Subkey(object):
            def __enter__(s):
                self._settings.beginGroup(k)
                return self

            def __exit__(s, type, value, tb):
                self._settings.endGroup()

         return Subkey()

为我提供了一个"Method '__enter__- group' should have self as first parameter"错误,为__exit__提供了一个类似的错误。有没有一种方法可以解决这个问题,而不将self分配给另一个变量,并且在其他方法签名中重用该变量?

最佳答案

您可以在首选项中禁用该错误…

Window > Preferences > Pydev > Editor > Code Analysis > Others

或者重构代码…
class Group(object):
    def key(self, k):
        outer_self = self
        class Subkey(object):
            def __enter__(self):
                outer_self._settings.beginGroup(k)
                return outer_self

            def __exit__(self, type, value, tb):
                outer_self._settings.endGroup()

         return Subkey()

你还期待什么?错误检查可以帮助您。如果您认为它们不是合法错误,请禁用它们或重构代码。
在这种情况下,我会说重构代码。它的可读性更高,从激进王的回答中可以看出。他不明白“CC”是另一个“CC”。

07-28 02:51
查看更多