组织大型课程

2024-06-16 14:13:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始为一些数学领域编写一个大的python库。你知道吗

所以我有这个数据结构(在类A中定义),它表示一个数学模型。你知道吗

我有一堆较小的函数,我把它们放在一个:

A.f(),A.g(),。。。你知道吗

计算更重要的函数A.X(),A.Y(),。。。最终用户感兴趣的。你知道吗

当然,所有这些函数都依赖于A中的数据

但是一个系统中的方法数量越来越多,越来越混乱。如何将这样一个类分割成更小的部分。 比如说,包含基本操作的数据结构和对该结构进行计算的“方法”?你知道吗

什么是通常的方法和最具Python性的方法?你知道吗


Tags: 数据方法函数数据结构数量定义系统数学
2条回答

对于不属于类公共接口一部分的“private”或helper方法,通常使用单下划线或双下划线作为前缀。你知道吗

一个影响是,例如在类上调用help时,不会显示像_my_helper这样的方法。你知道吗

更多细节见this post。你知道吗

您可以使用纯函数方法,并将类用户不应该在对象实例上调用的方法移动到单独的文件中。你知道吗

在纯函数方法中,函数不依赖于任何内部状态,没有副作用,只根据提供的参数计算返回值。你知道吗

举例说明如下:

# shape.py
class Shape:

    def __init__(self, x, y):
        self.x = x
        self.y = y

    def area(self):
        return self.x * self.y

使用:

# shape.py
class Shape:

    def __init__(self, x, y):
        self.x = x
        self.y = y

# func.py
def area(shape):
    return shape.x * shape.y

当然,将Shape类的area方法提取到另一个文件中的一个单独函数中可能不是一个好主意,但是您可以肯定地将所有“helper函数”移动到单独的文件中,并从类方法中正确地调用它们。你知道吗

这也将大大简化助手函数测试。你知道吗

相关问题 更多 >