Python-我应该将助手函数放在类的内部还是外部?

Python-我应该将助手函数放在类的内部还是外部?,python,class,pylint,Python,Class,Pylint,在Python中,如果类的某些方法需要一个helper函数,但是helper函数本身不使用类中的任何东西,那么我应该将helper函数放在类的内部还是外部 我试着把它放在里面,但派林抱怨说这个函数本可以放在外面 @卡尔: 该类是一个软件升级程序,如果文件夹还不存在,helper函数将创建一个新文件夹。到目前为止,该类位于一个模块中,几乎只有该类的代码。以后可能会添加其他类。辅助函数可能更适合模块级而不是类 如果您不同意这种情况,那么可以在类内部的函数上使用。简单地说,静态方法在同一类的对象实例化

在Python中,如果类的某些方法需要一个helper函数,但是helper函数本身不使用类中的任何东西,那么我应该将helper函数放在类的内部还是外部

我试着把它放在里面,但派林抱怨说这个函数本可以放在外面

@卡尔:


该类是一个软件升级程序,如果文件夹还不存在,helper函数将创建一个新文件夹。到目前为止,该类位于一个模块中,几乎只有该类的代码。以后可能会添加其他类。

辅助函数可能更适合模块级而不是类

如果您不同意这种情况,那么可以在类内部的函数上使用。简单地说,静态方法在同一类的对象实例化之间表现相同。它不依赖实例数据


因此,
staticmethod
装饰器呈现函数的行为,使其不会像文档中所述那样接受隐式的第一个参数(通常是
self
)。

在决定将辅助函数放置在何处时,我问的问题是,“它是否仅用于该类?”如果它在其他地方有帮助,然后进入模块级;如果它确实只适用于这个类,那么它将使用
staticmethod
(不需要类数据来完成它的工作)或
classmethod
(使用一些类而不是实例数据来完成它的工作)进入类中


另一个python代码检查器是。

您熟悉
@staticmethod
装饰器吗?我不熟悉,但现在熟悉了。:)谢谢<代码>@staticmethod不应用于替换模块级方法。不要用python编写java代码。编程中的一般性令人惊讶地少。告诉我们有关您的类和帮助函数的更多信息。@Falmari:如果该函数与该类相关(但不需要其任何数据),并且以后可能会添加更多与该函数无关的类,我认为OP有一个非常合法的
@staticmethod
用例,谢谢!我的东西在模块级不太合适。我要和func装饰师一起去。再次感谢你的帮助JackI不知道这是否能阻止PyLint警告。我没有使用PyLint,但是当Python文档推荐一些东西时,它可能已经足够好了。酷:)不过,有一个附带的问题,如果不使用PyLint,通常使用什么来检查代码?谢谢@杰克斯:也许是皮德夫?它是Eclipse IDE的python插件。此外,它还可以选择在内置检查器的顶部使用PyLint。