如何设置 coc-pyright 不警告方法中未使用的 self 参数?
How to set coc-pyright to not warn for unused self parameter in a method?
我在 neovim 中使用 CoC 的 coc-pyright 扩展。
在某些情况下,我们在 class 中有一个不需要访问自身变量的实例方法。例如,我可能在 __init__
方法中有一些变量不需要在 class 中的其他任何地方访问。作为玩具示例,请考虑,
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 在这种情况下不发出警告?
P.S。传递的变量是特定于实例的变量。所以 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 为您提供了有关如何重构代码的宝贵信息。
我在 neovim 中使用 CoC 的 coc-pyright 扩展。
在某些情况下,我们在 class 中有一个不需要访问自身变量的实例方法。例如,我可能在 __init__
方法中有一些变量不需要在 class 中的其他任何地方访问。作为玩具示例,请考虑,
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 在这种情况下不发出警告?
P.S。传递的变量是特定于实例的变量。所以 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 为您提供了有关如何重构代码的宝贵信息。