在Python项目中,我应该将实用程序函数放在哪里?

在Python项目中,我应该将实用程序函数放在哪里?,python,function,import,utilities,Python,Function,Import,Utilities,我需要创建一个函数来顺时针旋转给定的矩阵(列表列表),我需要在我的表中使用它。我应该将此实用程序函数(称为rotateMatrixClock)放在哪里因此,我可以轻松地从我的表类中的函数中调用它。如果您不想使它成为表类的成员,可以将它放入实用程序模块。使它成为静态函数… 添加@staticmethoddecorator 不要将“self”作为第一个参数 你的定义是: @staticmethod def rotateMatrixClockwise(): # enter code her

我需要创建一个函数来顺时针旋转给定的矩阵(列表列表),我需要在我的
表中使用它。我应该将此实用程序函数(称为
rotateMatrixClock
)放在哪里因此,我可以轻松地从我的
类中的函数中调用它。

如果您不想使它成为
类的成员,可以将它放入
实用程序
模块。

使它成为静态函数…

  • 添加@staticmethoddecorator
  • 不要将“self”作为第一个参数
你的定义是:

@staticmethod
def rotateMatrixClockwise():
    # enter code here...
通过调用以下命令,可以在导入“表”的任何地方调用:

table.rotateMatrixClockwise()
修饰符只需要告诉python不需要隐式的第一个参数。如果您想让方法定义像C#/Java一样,其中self总是隐式的,那么您也可以使用“@classmethod”装饰器


注意:我建议只在其代码不能直接耦合到模块的情况下使用实用程序类,因为它们通常违反OOP的“”。几乎总是最好将类的功能作为方法/成员绑定到类上。

“实用程序类违反了SRP”--更详细地说,在我看来,实用程序类失控的一点是,在同一个类中有许多完全不相关的方法,然后就有点让人困惑了,是否应该按主题、用途等划分方法。虽然FWIW我已经学会了在这方面有点务实,但我认为我宁愿一开始有一个稍微凌乱的实用程序类,而不是一个不必要的有状态实现,如果以后需要随着情况的变化而移动到类中,纯函数通常非常容易。