我在哪里把实用功能在我的蟒蛇的项目?
题
我需要创建一种功能转给定的矩阵(列表,列表)顺时针方向,并且我需要用它在我的 Table
类。我应该在哪里把这个工具的功能(称为 rotateMatrixClockwise
)所以我可以叫它很容易地从内部的功能在我的 Table
课吗?
解决方案
如果你不想让它成为Table
类的成员,你可以把它变成一个utilities
模块。
其他提示
它使一个静态功能...
- 添加@staticmethod装饰
- 不包括'自我'作为第一个参数
您的定义将是:
@staticmethod
def rotateMatrixClockwise():
# enter code here...
这将使它可赎回无处不在,你进口'table'电话:
table.rotateMatrixClockwise()
装修只需要告诉蟒蛇,没有隐含的第一个参数预计。如果你想做的方法的定义的行为像C#/Java自我总是隐含的,你也可以使用'@classmethod'的装饰。
注:我建议使用的实用课程只有在他们的代码不能直接联接到一个模块,因为他们一般违反'单一责任的原则'的面向对象.它的 几乎 总是最好领带功能的课作为一个方法/部件的类。
不隶属于 StackOverflow