使用类或模块对类似静态的方法进行分组?

Saš*_*jak 6 python python-module

我有~30种方法(约6个逻辑分组,每组约5个方法),它们只根据传递的参数进行计算,它们不保存状态或除了参数值之外还需要其他任何东西.

将这些方法,使用模块或类与静态方法分组的pythonic和更好的方法是什么?

差异将是:

from projectname.algorithms.module1 import method1, method2
Run Code Online (Sandbox Code Playgroud)

并且:

from projectname.algorithms import Group1
...
Group1.method1(parameter1)
...
Group1.method2(parameter1)
Run Code Online (Sandbox Code Playgroud)

这只是示例类,模块和方法名称.对类进行分组似乎对我更合乎逻辑.如果经常访问这些方法或任何其他警告,这种方式有任何缺点吗?

Mar*_*ers 5

您可以将模块导入到命名空间中,就像任何对象一样:

from projectname.algorithms import module1


module1.method1(parameter1)

module1.method2(parameter1)
Run Code Online (Sandbox Code Playgroud)

所以从API的角度来看,使用静态方法的类或这里的模块没有区别.

区别仅在于编写和维护.

在这里,坚持使用静态类方法的模块.仅在有一些实际状态要共享时使用类.如果您要使用类来对这些方法进行分组,那么您确实希望类对象本身具有某些意义,而不是促进命名空间分组.