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

时间:2010-06-15 22:35:05

标签: python function import utilities

我需要创建一个顺时针旋转给定矩阵(列表列表)的函数,我需要在Table类中使用它。我应该在哪里放置此实用程序功能(称为rotateMatrixClockwise),以便我可以在Table类的函数中轻松调用它?

2 个答案:

答案 0 :(得分:11)

将其设为静态功能......

  • 添加@staticmethod装饰器
  • 不要将'self'作为第一个参数

您的定义是:

@staticmethod
def rotateMatrixClockwise():
    # enter code here...

通过调用:

,可以在任何导入'table'的地方调用它
table.rotateMatrixClockwise()

装饰器只需要告诉python没有预期隐含的第一个参数。如果你想让方法定义像C#/ Java一样,其中self总是隐含的,你也可以使用'@classmethod'装饰器。

Here's the documentation for this coming directly from the python manual.

注意:我建议仅在其代码无法直接耦合到模块的情况下使用Utility类,因为它们通常违反了OOP的“Single Responsibility Principle”。 几乎始终最好将类的功能作为方法/成员绑定到类中。

答案 1 :(得分:4)

如果您不想让它成为Table课程的成员,可以将其放入utilities模块中。