如何处理pylint消息:警告:方法可能是一个函数

我有一个python类,并运行pylint。 一条消息是:

Warning: Method could be a function 

这是否告诉我,将这个方法移出类是更好的,因为它不使用任何实例variables?

在C#中,我会使这个静态方法。 什么是最pythonic在这里做什么?

把它移到一个函数是很常见的,如果它根本不触碰这个类的话。

如果它操作类属性,请使用classmethod装饰器:

 @classmethod def spam(cls, ...): # cls is the class, you can use it to get class attributes 

classmethodstaticmethod (与前者相同,只是该方法没有从第一个参数中获得类的引用)。 这意味着一些Python程序员被用来避免静态和类的方法。

一些硬核Python程序员会告诉你,这些装饰器只是使事情复杂化; 一些其他人(通常是前C#或Java程序员)会告诉你,使用函数不是面向对象的。 我认为这只是一个偏好问题。