代码之家  ›  专栏  ›  技术社区  ›  bignum

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

  •  52
  • bignum  · 技术社区  · 16 年前

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

    Warning: Method could be a function
    

    这是否意味着最好将此方法移出类,因为它不使用任何实例变量?

    在C中,我将使其成为静态方法。这里最要紧的事是什么?

    1 回复  |  直到 8 年前
        1
  •  58
  •   Bastien Léonard    16 年前

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

    如果它处理类属性,请使用 classmethod 装饰者:

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

    分类法 和 staticmethod (与前一个方法相同,只是方法没有从其第一个参数获取对类的引用)最近才被引入。 这意味着一些Python程序员被用来避免静态和类方法。

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

    推荐文章