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

Che*_*tan 12 python import utilities function

我需要创建一个顺时针旋转给定矩阵(列表列表)的函数,我需要在我的Table班级中使用它.我应该把这个实用函数放在哪里(调用rotateMatrixClockwise),这样我就可以在我Table班级的函数中轻松调用它了?

Eva*_*ice 11

使它成为静态功能......

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

你的定义是:

@staticmethod
def rotateMatrixClockwise():
    # enter code here...
Run Code Online (Sandbox Code Playgroud)

通过调用以下内容,可以在任何导入'table'的地方调用它:

table.rotateMatrixClockwise()
Run Code Online (Sandbox Code Playgroud)

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

以下是直接来自python手册的文档.

注意:我建议仅在其代码无法直接耦合到模块的情况下使用Utility类,因为它们通常违反OOP 的" 单一责任原则 ".它几乎总是最好的扳平一类的功能的方法/成员到类.


And*_*are 5

如果您不想使其成为Table类的成员,您可以将其放入utilities模块中。