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

时间:2010-04-20 09:46:20

标签: python oop pylint

我有一个python类并且针对它运行了pylint。它给出的一条信息是:

Warning: Method could be a function

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

在C#中,我会将其设为静态方法。在这里做什么最蟒蛇的事情?

1 个答案:

答案 0 :(得分:58)

将它移动到一个函数是很常见的,如果它根本不触及该类。

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

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

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

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