我应该把我的帮助函数放在课堂内还是课外?
在Python中,如果类的某些方法需要辅助函数,但辅助函数本身不使用类中的任何内容,我应该将辅助函数放入类还是外部?
我试图把它放进去,但PyLint抱怨说这个函数可能已经放到了外面。
@Karl:
该类是软件升级程序,如果该文件夹尚不存在,辅助函数将创建一个新文件夹。 现在,这个类在一个模块中几乎只有这个类的代码。 其他课程可能会在稍后添加。
当我决定把助手功能放在哪里时,我问的问题是,“这仅仅是为了这个班级吗?” 如果它可以在其他地方提供帮助,那么它就在模块级别; 如果它确实只用于这个类,那么它会使用staticmethod
(不需要类数据来完成它的工作)或classmethod
(使用一些类,但不是实例数据来完成它的工作)进入类。
另一个python代码检查器是pyflakes。
辅助函数可能更适合模块级而不是类。
如果您不同意这种情况,那么您可以在类中的函数上使用staticmethod装饰器。 简而言之,一个静态方法在同一个类的对象实例化之间表现相同。 它不依赖于实例数据。
由于这个原因, staticmethod
装饰器在函数上呈现行为,使得它不会像文档中所述的那样采用隐式的第一个参数(通常是self
)。
上一篇: Should I put my helper functions inside or outside the class?
下一篇: Can we have a static virtual functions? If not, then WHY?