如何处理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
classmethod
和staticmethod
(与前者相同,只是该方法没有从第一个参数中获得类的引用)。 这意味着一些Python程序员被用来避免静态和类的方法。
一些硬核Python程序员会告诉你,这些装饰器只是使事情复杂化; 一些其他人(通常是前C#或Java程序员)会告诉你,使用函数不是面向对象的。 我认为这只是一个偏好问题。