微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 coc-pyright 设置为不对方法中未使用的 self 参数发出警告?

如何解决如何将 coc-pyright 设置为不对方法中未使用的 self 参数发出警告?

我在 neovim 中使用 CoC 的 coc-pyright 扩展。

在某些情况下,我们在类中有一个不需要访问自变量的实例方法。例如,我可能在 __init__ 方法中有一些变量,它们不需要在类中的任何其他地方访问。作为一个玩具示例,请考虑,

class Example:
    def __init__(self,some_var):
        self.another_var = self.process_var(some_var)

    def process_var(self,some_var):
        return some_var*2

现在,pyright 警告我 self 未被访问。有没有办法让 Pyright 在这种情况下不发出警告?

附言传递的变量是特定于实例的变量。所以 self 需要使它成为一个实例变量,对吗?

解决方法

因此,您将 some_var 传递给方法而不是将其用作实例变量,这意味着您实际上并不需要 self.您正在使用 process_var 作为静态方法,因为它正在传递它需要的所有数据。您可以使用静态方法装饰器并像这样删除 self :

class Example:
    def __init__(self,some_var):
        self.another_var = self.process_var(some_var)

    @staticmethod
    def process_var(some_var):
        return some_var*2

如果你改用实例变量,它看起来像这样

class Example:
    def __init__(self,some_var):
        self.some_var = some_var
        self.another_var = self.process_var()

    def process_var(self):
        return self.some_var*2

这里的静态方法方法更清晰,因为通过使用实例变量,您需要在调用 process_var 之前了解 some_var 的当前状态,否则结果会有所不同。

您可以在 pyrightconfig.json 文件中将 reportUnusedVariable 设置为 false,但我不建议这样做,因为 pyright 为您提供了有关如何重构代码的宝贵信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。