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

Jac*_*k Z 46 python class pylint

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

我试过把它放在里面,但是PyLint抱怨说这个功能可以放在外面.

@Karl:

该类是软件升级程序,如果该文件夹尚不存在,则辅助函数会创建一个新文件夹.这个类在一个模块中,现在几乎只有类的代码.其他课程可能会在以后添加.

Eth*_*man 55

在决定把辅助函数放在哪里时,我问的问题是,"它只适用于这个类吗?" 如果它可以在其他地方帮助,那么它在模块级别; 如果它确实只适用于这个类,那么它会在类中进行staticmethod(不需要类数据来完成它的工作)或者classmethod(使用一些类,但不使用实例,数据来完成它的工作).

另一个python代码检查器是pyflakes.


Bri*_*ian 9

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

如果您不同意这种情况,那么可以在类内部的函数上使用staticmethod装饰器.简而言之,静态方法在同一个类的对象实例化之间表现相同.它不依赖于实例数据.

出于这个原因,staticmethod装饰器在函数上呈现行为,使得它不采用隐含的第一个参数(通常self),如文档中所述).